自定义Html字段扩展
本文关键字:扩展 字段 Html 自定义 | 更新日期: 2023-09-27 18:15:55
我在MVC3 (c#)中创建了一个自定义字段,我想在视图中使用Html属性访问。我想把它放在自己的类中,这样我就可以很好地组织代码(私有方法等),因为我们当前的Html Extensions类太吵了。
这就是我要找的:
交货。@Html.CustomField...
目前,我有这个代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Matrix.Investigator.Models.Parties;
using Matrix.Investigator.Website.Extensions;
namespace Matrix.Investigator.Website.Fields
{
public static class DetailsField
{
public static MvcHtmlString PartyDetailsField(this HtmlHelper helper, IEnumerable<IDetailsConfiguration> configuation)
{
.
.
.
[Some Code for the field]
return MvcHtmlString.Create([CODE FOR TAG].toString());
}
}
}
无论如何,当我尝试在表单上使用这个时它不会出现在智能感知中:
ex: <li>@Html.PartyDetailsField(Model.IdentifierConfiguration)</li>
但是,当相同的代码放在HtmlHelperExtensions文件中时,它工作得很好。我甚至看不出类定义有什么不同。
是否有任何光,可以在这种情况下照射或我将不得不离开它在HtmlHelperExtensions类。
确保您已将定义此扩展方法的名称空间带入视图的作用域:
@using Matrix.Investigator.Website.Fields
或在~/Views/web.config
(而不是~/web.config
)的<namespaces>
标签中,将其纳入所有Razor视图的全局范围。
显然,由于Razor页面中Visual Studio的智能感知功能很糟糕,你可能需要关闭并重新打开视图才能让它选择它。无论如何,永远不要相信Visual Studio在视图中的智能感知。相信你的直觉和知识。运行应用程序是验证结果的最佳方法。