Asp.Net MVC 模型绑定

时间:2020-09-06 14:26:35   收藏:0   阅读:58

通过实现System.Web.Mvc.IModelBinder接口,可以创建一个自定义的模型绑定器。

public object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext);

IModelBinder接口定义了一个方法:BindModel,为其提供了两个参数能够用来创建与模型对象。

通过ControllerContext能够访问控制器类所具有的全部信息,包括客户端请求的细节,

它具有HttpContext属性,HttpContext又相应地有一个Session属性,该属性能够后去和设置会话。

ViewData:它返回一个ViewDataDictionary对象,ViewDataDictionary类定义了一些有用的属性,它们提供对视图模型、视图包和视图模型元数据的访问。

Keys:   为字典中的数据返回键值集合,它们可用来访问视图包属性

Model :为请求返回视图模型对象

ModelMetaData 返回一个可以用来反映模型类型的ModelMetadata对象

ModelState 返回有关模型的状态信息

在视图中可以直接通过@ViewData 和 @ViewContext.RouteData.Values.Key  访问对应的数据 

部分视图:

在主视图中通过  @Html.Partial(‘MyPartial")调用部分视图 MyPartial

@Html.Partial("MyPartial",new []{})   即@Html.Partial("部分视图名","部分视图模型实例")

子动作:

子动作与动作之间的关系如同部分视图与视图之间的关系

子动作典型地与部分视图相关联,但这不是必须的。

@Html.Action("子动作","控制器")

辅助器方法

内联辅助器 @helper mymethod(param){}  即在试图中定义方法供调用,内而使视图难以阅读。

联辅助器是方便的,但是它只能在声明它们的视图之中使用,而且,如果内联辅助器太复杂可能会占据视图而使视图难以阅读。

外部辅助器

外部方法其实就是辅助器的扩展方法

如:

using System.Web.MVC;

public static MvcHtmlString ListArrayItems(this HtmlHelper html, string[] list)
{
TagBuilder tag = new TagBuilder("ul");
foreach (string str in list)
{
TagBuilder itemTag = new TagBuilder("li");
itemTag.SetInnerText(str);
tag.InnerHtml += itemTag.ToString();
}
return new MvcHtmlString(tag.ToString());
}

原文:https://www.cnblogs.com/sundh1981/p/13600884.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!