Asp.Net MVC 模型绑定
通过实现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