asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET MVC雕虫小技 1-2[2]


发布日期:2022年07月05日
 
ASP.NET MVC雕虫小技 1-2[2]

而View中

: <%@ Page Language=C# MasterPageFile=~/Views/Shared/SiteMaster

: Inherits=SystemWebMvcViewPage<HomeIndexViewModel> %>

: <asp:Content ID=indexTitle ContentPlaceHolderID=TitleContent runat=server>

:Home Page

: </asp:Content>

: <asp:Content ID=indexContent ContentPlaceHolderID=MainContent runat=server>

:<h><%= HtmlEncode(ModelMessage) %></h>

: </asp:Content>

这样我们就可以实现将Controller中产生的自定义上下文传递了不过每个ViewModel都初始化一个IContext未免太过频繁也累人于是进一步改进我们利用作用在Controller上的Filter在Controller的基类我们自定义的 MyBaseController中写如下Filter而实现这个功能则要所有的ViewModel继承于一个类MyBaseViewModel

MyBaseViewModel与Model

: public class MyBaseViewModel {

:public IContext Context { get; set; }

: }

:

: public class HomeIndexViewModel:MyBaseViewModel {

:public string Message { get; set; }

: }

Controller与Filter

: abstract public class BaseController : Controller {

:protected override void OnResultExecuting(ResultExecutingContext filterContext) {

:var m = ViewDataModel as BaseViewModel;

:if (m != null){

:mContext = CHContext;//在这里初始化

:}

:}

: }

这回我们在Controller里使用时就清爽了不用再传递CHContext了

[] []

               

上一篇:ASP.NET技巧:做个DataList 可分页的数据源

下一篇:ASP.NET中遍历页面的所有button控件