簡體   English   中英

將模型發布回ASP.NET MVC3中的控制器

[英]Posting a model back to controller in ASP.NET MVC3

我正在嘗試將模型發布回控制器,但是由於某些原因,控制器總是返回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似乎是一個復雜的類型,因此您不能將其指定為輸入字段的值。

最好的辦法是使用@Html.EditorFor生成模型所需的html字段,這將確保它們作為Company對象發回。

取代這個

<input type="hidden" name="company" value="@Model"/>

@Html.EditorFor(model => model)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM