gpt4 book ai didi

asp.net-mvc - 不带前缀的 Asp.net mvc 2 模板

转载 作者:行者123 更新时间:2023-12-01 08:21:55 24 4
gpt4 key购买 nike

给定以下 View 模型:

class DetailsViewModel
{
public HeaderViewModel Header {get;set;}
public FooterViewModel Footer {get;set;}
}

我正在使用标题 View 模型的编辑器模板:

<%: Html.EditorFor(x => x.Header) %>

编辑器模板 (EditorTemplates/HeaderViewModel.ascx)

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<HeaderViewModel>" %>

<% ViewData.TemplateInfo.HtmlFieldPrefix = ""; %>

<%: Html.EditorFor(x => x.Search) %>

结果:

<input type="text" value="" name="Search" id="Search" />

如果我删除该行

<% ViewData.TemplateInfo.HtmlFieldPrefix = ""; %>

结果是:

<input type="text" value="" name="Header.Search" id="Header_Search" />

是否有另一种方法可以实现相同的目的 - 渲染不带前缀的控件名称?

我正在考虑一个助手:

public static MvcHtmlString EditorWithoutPrefix<TModel, TValue>(
this HtmlHelper<TModel> html, TValue value)
{
var htmlHelper =... // create new HtmlHelper<TValue> and set it's model to be 'value' argument

return htmlHelper.EditorForModel();
}

并使用它:

<%: Html.EditorWithoutPrefix(Model.Header) %>

但它抛出异常。

或者也许您知道另一种优雅的方式来呈现没有前缀的名称?

最佳答案

您可以使用proper overload :

<%: Html.EditorFor(x => x.Search, "SearchViewModel", "") %>

关于asp.net-mvc - 不带前缀的 Asp.net mvc 2 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4594190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com