2014-03-01 2 views
0

Я использую текстовое поле для обновления пользовательской записи, оно отправляет половину имени в базу данных, например. если имя «Джон Мэтью», тогда он только представляет «Иоанна». EVen i проверял, что значение, отправляемое из текстового поля в действие, завершено, но представлено наполовину, почему? я заметил, что мое текстовое поле привязано к полю EmplName в базе данных, и оно выбирает половину имени оттуда, в значении оно показывает половину имени, поэтому он представляет половину имени почему?Значение делится на половину перед отправкой

эта линия:

Контроллер:

public ActionResult InsertEmployeeEditedDetail(String EmpName, String DeptID, String ShiftId, String EntryDate, String Salary, String Email, bool Approval) 
     { 
      int? EmplId = Convert.ToInt32(Session["EmpEdit"]); 
      var UpdateRec = DataContext.UpdateEmployeeDetails_Sp(EmplId, EmpName, DeptID, ShiftId, EntryDate, Salary, Email, Approval); 
      return View(); 
     } 

Вид:

@using EmployeeAttendance_app.Models 
@model IEnumerable<GetEmployeeEditDetails_SpResult> 

@{ 
    var Item = Model.FirstOrDefault(); 
} 

<style type="text/css"> 

</style> 
<div> 
@using (Html.BeginForm("InsertEmployeeEditedDetail", "Home", FormMethod.Post)) 
{ 
    <label id="lblName" class="editEmp_label">Name</label> 
    <input type="text" value= @Item.EmplName name="EmpName" placeholder="Update Name" /> 
    <br /> 
    <label id="lblDept" class="editEmp_label">Department</label> 
    @Html.DropDownList("DeptID", @Item.DeptName) 
    <br /> 
    <label id="lblShift" class="editEmp_label">Shift</label> 
    @Html.DropDownList("ShiftId", @Item.ShiftName) 
    <br /> 
    <label id="lblEntryDate" class="TxtBoxFrom editEmp_label">Entry Date</label> 
    <input type="text" value= @Item.EntryDate class="TxtBoxTo" name="EntryDate" placeholder="Update Date" /> 
    <br /> 
    <label id="lblSalary" class="editEmp_label">Salary</label> 
    <input type="text" value= @Item.BasicSalary name="Salary" placeholder="Update Salary" /> 
    <br /> 
    <label id="lblEmail" class="editEmp_label">Email</label> 
    <input type="text" value= @Item.EmailAdd name="Email" placeholder="Update Email" /> 
    <br /> 
    <label id="lblApproved" class="editEmp_label">Overtime Approval</label> 
    @Html.CheckBox("Approval", @Convert.ToBoolean(@Item.OvertimeApproved)) 
    <br /> 
    <button type="submit" id="btnUpdate" class="button_AdminPanel" style="width:75px" name="btnSubmit">Update</button> 

} 

магазин Процедура:

PROCEDURE [dbo].[UpdateEmployeeDetails_Sp] 
    @Emplid int, 
    @EmplName varchar(40), 
    @DeptId char(36), 
    @ShiftId char(40), 
    @EntryDate char(10), 
    @Salary varchar(50), 
    @EmailAdd varchar(50), 
    @OvertimeApproval bit 


AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    Update HrEmployee 
    Set EmplName = @EmplName, [email protected], [email protected], 
        [email protected], OvertimeApproved= @OvertimeApproval, 
        [email protected], [email protected] 
        where EmplID [email protected] 

END 
+0

Просто так я ясно: это имя расщепляющего то, что вы хотите иметь случается, что НЕ, или что-то, что происходит, что вы НЕ хотите? –

+0

Я хочу отправить полное имя в базу данных, не разбитую, E.g. хочу представить Мэтью Джексона, но он подчиняется только Мэтью, почему? – user3368990

+1

Что такое 'EmplName', определенное как в базе данных? Как долго это? –

ответ

1

Включить значение атрибута значения в двойном значении quots = "@ Item.EmplName". Если в названии есть пробел, последнее имя (после пробела) становится атрибутом входного элемента управления, который не отображается и не может быть отправлен обратно.

0

Учитывая, что весь ваш код выглядит достаточно разумным, я могу только думать о нескольких возможностях:

  1. Возможно, код, который вызывает хранимую процедуру из DataContext имеет длину параметра для EmplName как нечто гораздо короче.
  2. Возможно, в таблице базы данных есть триггер, который управляет значением этого столбца.
  3. Возможно, что-то идет не так - как слишком короткий выходной параметр - когда вы извлекаете данные из базы данных и отображаете их.
+0

ok mam, kemme проверить эти – user3368990

1

было бы лучше, если вы используете @Html.TextBoxFor(), это будет обрабатывать связывания, а вместо явно установить значение текстового поля с помощью «значения»

Смежные вопросы