我在 cshtml 页面上有多个表单。这些表单中的第一个正确绑定,但我无法让第二个绑定。每次我单击提交按钮时,传递的值都是 0 或 null(分别为 int 和 stings)
我的模型包含两个对象。AccountInfo 和 AccountSettings 列表:
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;
}
我的行动。第一个动作可以正常工作,但第二个不能。
public ActionResult UpdateAccountDetails(Account model)
{...}
public ActionResult DeleteSetting(AccountSettings model)
{...}
在我的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>
}
在页面后面我有这个块。当我使用关联的提交按钮时,该函数被调用,但无论文本框的内容如何,参数都是 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>
}
}
我在语法上尝试了许多不同的变体,但似乎无法做到正确。欢迎提出建议、解决方案和资源。先感谢您。