我正在从MSDN网站上的Stephen Walther教程学习MVC。他建议我们可以创建Html Helper方法。
说实例
using System;
namespace MvcApplication1.Helpers
{
public class LabelHelper
{
public static string Label(string target, string text)
{
return String.Format("<label for='{0}'>{1}</label>",
target, text);
}
}
}
我的问题在哪个文件夹下我需要创建这些类?
查看文件夹或控制器文件夹?或者我可以将它放在App_Code文件夹中吗?
答案 0 :(得分:2)
我会创建一个子文件夹Extensions,其中定义了辅助方法:
namespace SomeNamespace
{
public static class HtmlHelperExtensions
{
public static string MyLabel(this HtmlHelper htmlHelper, string target, string text)
{
var builder = new TagBuilder("label");
builder.Attributes.Add("for", target);
builder.SetInnerText(text);
return builder.ToString();
}
}
}
在您的视图中,您需要引用命名空间并使用扩展方法:
<%@ Import Namespace="SomeNamespace" %>
<%= Html.MyLabel("abc", "some text") %>
答案 1 :(得分:1)
您可以将它放在任何您喜欢的地方。重要的是它对你(以及从事该项目的每个人)都有意义。就个人而言,我让我的助手走在这条道路上:/App/Extensions/
。
答案 2 :(得分:0)
将其放在应用代码中。但是,ASP.NET MVC 2已具有Label
功能。
答案 3 :(得分:0)
您可以放入Models文件夹或App_Code(不确定MVC中有哪些类型的支持);最好有一个单独的图书馆。另外,html帮助扩展是扩展方法,必须从这个HtmlHelper html参数开始,如:
public static class LabelHelper
{
public static string Label(this HtmlHelper html, string target, string text)
{
return String.Format("<label for='{0}'>{1}</label>",
target, text);
}
}
编辑:您可以在命名空间中通过将其添加到以下内容来引用它:
<pages>
<namespaces>
配置文件中的元素,就像你定义命名空间一样,它在任何地方都被引用。