将模型发布回 MVC3 中的控制器 ASP.NET
本文关键字:控制器 ASP NET MVC3 模型 布回 | 更新日期: 2023-09-27 17:55:38
我正在尝试将模型发布回控制器,但由于某种原因,控制器总是返回NULL。我知道我做错了什么。这是什么?
但是,如果我从该模型中发回特定属性,它就可以正常工作。
控制器:
[HttpPost]
public void MyAction(Company company)
{
System.Diagnostics.Debug.WriteLine("STUFF:" + company.dbName);
if(company.CompanyOptions!=null)foreach (var item in company.CompanyOptions.CompanyLicenseOptions.CompanyLicenseOptionsList) System.Diagnostics.Debug.WriteLine("STUFF:" + item);
else System.Diagnostics.Debug.WriteLine("STUFF IS NULL");
}
视图:
@model Domain.Entities.Company
@using (Html.BeginForm("MyAction", "Controller", FormMethod.Post))
{
foreach (var licensedFeature in Model.CompanyOptions.CompanyLicenseOptions.CompanyLicenseOptionsList)
{
@Html.CheckBox(licensedFeature.LicenseName, licensedFeature.IsLicensed, checkboxHtmlAttributes);
@licensedFeature.LicenseName
}
<input type="hidden" name="company" value="@Model"/>
<input id="submit_licenses" type="submit" style="display:none;" />
}
@Model
似乎是一个复杂类型,因此您无法将 to 指定为输入字段的值。
您能做的最好的事情是使用@Html.EditorFor
为模型生成所需的 html 字段,这将确保它们作为 Company 对象回发。
替换此
<input type="hidden" name="company" value="@Model"/>
跟
@Html.EditorFor(model => model)