Data binding 模型绑定和sumbit按钮mvc4
我在cshtml页面上有多个表单。第一个表单绑定正确,但我无法让第二个表单绑定。每次单击submit按钮时,传递的值都是0或null(分别为int和stings) 我的模型包含两个对象。AccountInfo和AccountSettings列表:Data binding 模型绑定和sumbit按钮mvc4,data-binding,razor,asp.net-mvc-4,Data Binding,Razor,Asp.net Mvc 4,我在cshtml页面上有多个表单。第一个表单绑定正确,但我无法让第二个表单绑定。每次单击submit按钮时,传递的值都是0或null(分别为int和stings) 我的模型包含两个对象。AccountInfo和AccountSettings列表: public class AccountDetailViewRequest { public Account AccountInfo { get; set; } public List<AccountSettings> Se
public class AccountDetailViewRequest
{
public Account AccountInfo { get; set; }
public List<AccountSettings> Settings { get; set; }
}
public class AccountSettings
{
public int AccountID;
public string Name;
public string Value;
public int ID;
}
在我的cshtml页面中,我有一个正确工作的块
@using (Html.BeginForm("UpdateAccountDetails", "Account"))
{
<input type = "hidden" name = "AccountInfo.AcctID" value = @Model.AccountInfo.AcctID />
<table>
<tr>
<td>Company @Html.TextBox("AccountInfo.Company")</td>
<--More text boxes here-->
</tr>
<tr>
<td><input name="Save" type="submit" value="Save Changes"/></td>
</tr>
</table>
}
@使用(Html.BeginForm(“UpdateAccountDetails”、“Account”))
{
Company@Html.TextBox(“AccountInfo.Company”)
}
在后面的页面中,我有这个块。当我使用关联的submit按钮时,函数被调用,但是不管文本框的内容如何,参数都是0或null。当我查看代码源代码时,这些框会从我的数据库中正确填充
@for (int index = 0; index < Model.Settings.Count; index++)
{
var setting = Model.Settings[index];
using (Html.BeginForm("DeleteSetting", "Account"))
{
<tr>
<td>@Html.TextBox("Name", @Model.Settings[index].Name)</td>
<td>@Html.TextBox("Value", setting.Value)</td>
@Html.Hidden("ID", setting.ID)
@Html.Hidden("AccountID", Model.AccountInfo.AcctID)
<td><input type="submit" value="Delete"/></td>
</tr>
}
}
for(int index=0;index提前谢谢。试试这样的东西
<tr>
<td>@Html.TextBox("AccountSettings.Name", @Model.Settings[index].Name)</td>
<td>@Html.TextBox("AccountSettings.Value", setting.Value)</td>
@Html.Hidden("AccountSettings.ID", setting.ID)
@Html.Hidden("AccountSettings.AccountID", Model.AccountInfo.AcctID)
<td><input type="submit" value="Delete"/></td>
</tr>
@Html.TextBox(“AccountSettings.Name”,@Model.Settings[index].Name)
@文本框(“AccountSettings.Value”,setting.Value)
@隐藏(“AccountSettings.ID”,setting.ID)
@隐藏(“AccountSettings.AccountID”,Model.AccountInfo.AcctID)
视图模型是AccountDetailViewRequest,其名称、值等不是属性
如果你这样做会更整洁:
@foreach (var setting in Model.Settings)
{
using (Html.BeginForm("DeleteSetting", "Account"))
{
<tr>
<td>@Html.TextBoxFor(m => setting.Name)</td>
<td>@Html.TextBoxFor(m => setting.Value)</td>
@Html.HiddenFor(m => setting.ID)
@Html.HiddenFor(m => setting.AcctID)
<td><input type="submit" value="Delete"/></td>
</tr>
}
}
@foreach(Model.Settings中的变量设置)
{
使用(Html.BeginForm(“DeleteSetting”、“Account”))
{
@Html.TextBoxFor(m=>setting.Name)
@Html.TextBoxFor(m=>setting.Value)
@Html.HiddenFor(m=>setting.ID)
@Html.HiddenFor(m=>setting.AcctID)
}
}
请注意,我临时编写了上述代码,您可能需要调整它才能工作
@foreach (var setting in Model.Settings)
{
using (Html.BeginForm("DeleteSetting", "Account"))
{
<tr>
<td>@Html.TextBoxFor(m => setting.Name)</td>
<td>@Html.TextBoxFor(m => setting.Value)</td>
@Html.HiddenFor(m => setting.ID)
@Html.HiddenFor(m => setting.AcctID)
<td><input type="submit" value="Delete"/></td>
</tr>
}
}