c# - 如何编写像 Html.TextBoxFor 这样的自定义 ASP.NET MVC HTML Helper 并设置正确的名称属性

标签 c# asp.net-mvc

我想要自定义 Html.DateTimePickerFor(a => a.Fields[0].Id, value)

所以结果应该是这样的:

<div name="Fields[0].Id"></div>

目前我使用 Html.DatetimePicker("Fields[0].Id", value) 并且它工作得很好,但我想生成动态名称。

那么问题是如何设置正确的"name"属性?

最佳答案

试试这个。它对我有用。

    public static MvcHtmlString DateTimePickerFor<TModel, TProp>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProp>> expression, object htmlAttributes)
    {
        string name   = ExpressionHelper.GetExpressionText(expression);
        ... rest of code here
    }

魔法来自 System.Web.Mvc.ExpressionHelper.GetExpressionText()。从表达式中获得名称后,您可以将其应用于您的 div。

GetExpressionText()

关于c# - 如何编写像 Html.TextBoxFor 这样的自定义 ASP.NET MVC HTML Helper 并设置正确的名称属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994253/

相关文章:

asp.net-mvc - 如何设置用户名在aspnet身份中不唯一

c# - 检查 .NET 动态程序集是暂时的还是持久的

javascript - 第二次按钮单击事件后,javascript 函数在 c# 的 asp.net 中不起作用

javascript - 将选定的下拉菜单与条件进行比较

asp.net-mvc - MVC中传递参数的设计建议

asp.net-mvc - 如何识别一篇关于 asp.net-mvc 的文章或演示已过时?

jquery - 将 ASP.NET MVC 4 中的 jQuery 1.8.3 更新为 jQuery 1.9.0

c# - 正则表达式 - 最长的可能值

c# - 将 typeof(T) 转换为 T

c# - 如何将图像转换为字符流