2009-09-08 3 views
0

Привет У меня есть следующее представление, которое получает значения для полей формы из представлений, содержащих экземпляр класса ApplicationSettingEntity. класс ApplicationSettingEntity содержит экземпляр класса работоспособности как один из атрибутов. Форма заполняется значениями из item.Key item-id item.Machine.Nameне возвращает все обновленные значения при редактировании

Когда я редактирую значения форма возвращает обновленные значения и item.Key item-id, но не item.Machine. Имя

Я проверил значение item.Machine.Name, поскольку я увлажняю форму и правильно задает значение текстового поля, но данные отправлены назад для item.Machine имеет значение null, когда я нажимаю кнопку сохранения. Что я делаю не так?

 <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 

     <%@ Import Namespace="AppSettings.Web.Models" %> 
     <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
      Edit Application Setting 
     </asp:Content> 
     <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
      <strong style="color: Black;"> 
      <div> 
       <% if (ViewData["ApplicationSetting"] != null) 
        { 
         var item = (ApplicationSettingEntity)ViewData["ApplicationSetting"]; 
       %> 
         <%=Html.ActionLink("Back to List", "Index", 
                 new 
                  { 
                   controller = "ApplicationSettings", 
                   Applications = item.Id, 
                   Machines = item.Machine.Id 
                  })%> 
         </div> 
         <%=Html.ValidationSummary("Edit was unsuccessful. Please correct the errors and try again.")%> 
         <% 
          using (Html.BeginForm((bool)ViewData["IsAdd"] ? "SaveAdd" : "SaveEdit", "ApplicationSettings")) 
          {%>   
           <fieldset> 
            <legend><strong>Application Name:</strong> 
            </legend> 
            <p> 
             <label for="Id" style="font-weight: bold;"> 
              Application Setting Id:</label> 
             <%=Html.TextBox("Id", item.Id)%> 
             <%=Html.ValidationMessage("Id", "*")%> 
            </p> 
            <p> 
             <label for="Key" style="font-weight: bold;"> 
              Application Setting Key:</label> 
             <%=Html.TextBox("Key", item.Key, new {style = "width:400px;"})%> 
             <%=Html.ValidationMessage("Key", "*")%> 
            </p> 
            <p> 
             <span style="font-weight: bold;">Machine Name: </span>    
             <%=Html.TextBox("MachineName", item.Machine.Name)%> 

            </p> 
            <p> 
             <input type="submit" value="Save" /> 
            </p> 
           </fieldset> 
           <% 
          }%> 
         <div> 
          <%=Html.ActionLink("Back to List", "Index", 
                  new 
                   { 
                    controller = "ApplicationSettings", 
                    applicationId = item.Application.Id, 
                    machineId = item.Machine.Id 
                   })%> 
         </div> 
         <% 
       }%> 
     </asp:Content> 

ответ

3

Вы получаете значение поста в пункте MachineName коллекции формы, потому что это первые пары из Html.TextBox

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