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

asp.net-mvc – ViewBag.Title值覆盖ASP.NET MVC编辑器模板的Mod

发布时间:2020-12-15 23:33:06 所属栏目:asp.Net 来源:网络整理
导读:当我将ViewBag.Title设置在Razor模板的顶部时,使用ViewBag.Title的值而不是预期的Model.Title值来填充Model.Title编辑器模板文本框.调用Html.EditorFor(x = Model.Title)显然不会产生这种行为. 如何阻止我的编辑器模板显示ViewBag.Title值,而不保留我的模型
当我将ViewBag.Title设置在Razor模板的顶部时,使用ViewBag.Title的值而不是预期的Model.Title值来填充Model.Title编辑器模板文本框.调用Html.EditorFor(x => Model.Title)显然不会产生这种行为.

如何阻止我的编辑器模板显示ViewBag.Title值,而不保留我的模型的自定义编辑器模板?

@{
    ViewBag.Title = "Edit Post " + Model.Title;
}

@Html.EditorFor(x => Model.Title) @* renders "My Title" text box *@
@Html.EditorFor(x => Model)       @* renders "Edit Post My Title" text box *@

解决方法

Html.EditorFor使用的值可以来自三个地方:ModelState,ViewData和Model.顺便说一下,ViewData和ViewBag是同一个事情,两种与相同底层字典进行交互的方式.

所以,为避免在使用表单时发生冲突,您可以使用Model,也可以使用前缀,如ViewBag._Title.

在这种情况下,ViewBag.Title用于与布局共享数据,您也可以在不担心更改视图数据的情况下执行Page.Title.

(编辑:李大同)

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

    推荐文章
      热点阅读