65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET MVC 模型绑定器有什么用?

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.40/5 (9投票s)

2014年6月14日

CPOL

1分钟阅读

viewsIcon

38302

这篇文章讨论了 ASP.NET MVC 模型绑定器的必要性。

模型绑定器将 HTML 表单元素映射到模型。它充当 HTML UI 和 MVC 模型之间的桥梁。

以下是一个简单的 HTML 表单示例:

<formid="frm1" method=post action=”/Customer/SubmitCustomer”>
            Customer code :- <inputname="CCode"type="text"/>
            Customer name :- <inputname="CName"type="text"/>
    <input type=submit/>
</form> 

现在,这个表单需要填充下面的“Customer”类模型。 如果您查看 HTML 控制器的名称,它与类属性名称不同。 例如,HTML 文本框控制器的名称是“CCode”,而类属性名称是“CustomerCode”。 这个映射代码是在 HTML 绑定器类中编写的。

publicclassCustomer
{
publicstring CustomerCode { get; set; }
publicstring CustomerName { get; set; }
}

要创建模型绑定器,我们需要实现“IModelBinder”接口,并将映射代码编写到“BindModel”方法中,如下面的代码所示。

publicclassCustomerBinder : IModelBinder
{

publicobject BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
HttpRequestBase request = controllerContext.HttpContext.Request;

string strCustomerCode = request.Form.Get("CCode");
string strCustomerName = request.Form.Get("CName");

returnnewCustomer
            {
                CustomerCode = strCustomerCode,
                CustomerName = strCustomerName
            };
}
}

现在,在操作结果方法中,我们需要使用“ModelBinder”属性,它会将绑定器附加到类模型。

publicActionResult SubmitCustomer([ModelBinder(typeof(CustomerBinder))]Customer obj)        
{

return View(“DisplayCustomer”);
}

如果您完全不了解 ASP.NET MVC,可以从下面的免费 YouTube 视频开始,该视频从头开始教授 MVC 5。

如需进一步阅读,请观看以下面试准备视频和分步视频系列。

© . All rights reserved.