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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ViewBag.Title值覆盖ASP.NET MVC编辑器模板的Model.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.

原文链接:https://www.f2er.com/aspnet/250528.html

猜你在找的asp.Net相关文章