gpt4 book ai didi

asp.net-mvc-3 - 如何在自定义Html帮助器中使用Html.EditorFor()(及其他)?

转载 作者:行者123 更新时间:2023-12-04 04:13:16 26 4
gpt4 key购买 nike

基本上,我想要一个HTML帮助器(类似于@Html.MyEditor(m => m.Property))来产生这个:

<div class="editor-label">
@html.LabelFor(m => m.Property)
</div>
<div class="editor-field">
@html.EditorFor(m => m.Property)
@html.ValidationMessageFor(m => m.Property)
</div>

唯一的问题是,我似乎无法在自己的助手中访问 Html.EditorFor()或任何其他扩展方法。尝试示例:
@helper Edit(this System.Web.Mvc.HtmlHelper<Spartacus.ViewModels.NewTaskItemModel> html)
{
<div class="editor-label">
@html.LabelFor(m => m.Property)
</div>
<div class="editor-field">
@html.EditorFor(m => m.Property)
@html.ValidationMessageFor(m => m.Property)
</div>
}

我还尝试了扩展方法语法:
public static string DatePickerFor<TModel, TProperty>(this HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression)
{
var sb = new StringBuilder();
sb.AppendLine("<div class=\"editor-label\">");
sb.AppendLine(html.LabelFor(expression));
sb.AppendLine("</div>");
sb.AppendLine("<div class=\"editor-field\">");
sb.AppendLine(html.EditorFor(expression));
sb.AppendLine(html.ValidationMessageFor(expression));
sb.AppendLine("</div>");
return sb.ToString();
}

在上述两种尝试中,LabelFor,EditorFor和ValidationMessageFor都会引发编译错误(“找不到”)。

有人知道这样做的方法吗?提前致谢!

最佳答案

如果您有一个用于System.Web.Mvc.Html命名空间的命名空间,它应该可以工作。扩展方法是在此命名空间上的各种静态扩展类(例如EditorExtensions)上定义的。

关于asp.net-mvc-3 - 如何在自定义Html帮助器中使用Html.EditorFor()(及其他)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069183/

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