加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Asp.Net MVC中设计师友好的视图

发布时间:2020-12-16 07:08:04 所属栏目:asp.Net 来源:网络整理
导读:我很享受Asp.Net MVC,我希望在即将到来的项目中使用它.然而,项目的一部分是强调能够将项目视图暴露给设计者以获取主题等内容.我期待的一个问题是Asp.Net MVC视图是以开发人员为中心的.我真的不想让设计师对%vs.%=的内部性进行教育,更不用说%foreach ...
我很享受Asp.Net MVC,我希望在即将到来的项目中使用它.然而,项目的一部分是强调能够将项目视图暴露给设计者以获取主题等内容.我期待的一个问题是Asp.Net MVC视图是以开发人员为中心的.我真的不想让设计师对<%vs.<%=的内部性进行教育,更不用说<%foreach ... 以一个典型的MVC菜单结构为例.

<div id="menu">
 <ul>
      <li><%= Html.ActionLink("Home","Index","Main")%></li>
      <li><%= Html.ActionLink("About","About","Main")%></li>
      <li><% Html.RenderPartial("LogOnUserControl"); %></li>
  </ul>
</div>

我宁愿能够告诉设计师使用类似的东西

<div id="menu">
 <ul>
      <li>{ActionLink "Home","Main"}</li>
      <li>{ActionLink "About","Main"}</li>
      <li>{Partial "LogOnUserControl"}</li>
  </ul>
</div>

要么

<div id="menu">
 <ul>
      <li><my:ActionLink text="Home" action="Index" controller="Main" /></li>
      <li><my:ActionLink text="About" action="About" controller="Main" /></li>
      <li><my:Partial name="LogOnUserControl" /></li>
  </ul>
</div>

是的,那最后看起来像一大堆UserControls.就个人而言,我不是真的使用UserControls来做这件事的粉丝只是因为这些控件的渲染几乎发生在其他所有事情之后(据我所知)并且我更喜欢更符合MVC生命周期的东西.我真正需要的是一组占位符和一种用相关渲染替换它们的方法.

那么哪里是最好的地方,我在这里看到了什么样的权衡.我可以想象出来的几个角度:

>一个自定义ViewPage类,我可以覆盖相关的东西.也许是ViewPage.RenderView或ViewPage.FrameworkInitialize,但是你从那里得到的文字我不知道.
>创建一个自定义TextWriter并覆盖ViewPage.CreateHtmlTextWriter然后我可以拦截文本输出以替换东西.但是,这在周期中已经很晚了,如果我不小心的话,会混淆其他自定义过滤.
>创建我自己的IView和ViewEngine类.在我想知道自己是否会走向一个非常糟糕的地方之前,我没有走很远的路.
>自定义UserControls,可以模仿所需的功能.

意见?其他选择?我自己的ViewEngine是我最好的选择吗?我自己的ViewPage?或者UserControl对象是否足够(请说不)?

解决方法

看看 Spark.它的语法类似于你的例子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读