gpt4 book ai didi

javascript - ASP.NET MVC Razor 。如何不替换字段 ID 上的非美国字符?

转载 作者:行者123 更新时间:2023-11-30 15:20:11 27 4
gpt4 key购买 nike

如果我的 POCO 类确实有这样的属性:

public int Número {get; set;}

然后他们根据我的观点写下:

@Html.EditorFor(model => model.Número)

它用下划线代替非标准的美国字符呈现输入,如下所示:

<input name="Número" id="N_mero" type="text" />

有可能以某种方式避免它吗?我想保留输入 ID 上的非标准字符,以便使用 Javascript 轻松查询。

最佳答案

您可以使用 EditorFor overload接受 View 数据对象以覆盖用于 id 属性的值:

@Html.EditorFor(model => model.Número, new { htmlAttributes = new { id = nameof(Model.Número) } })

编辑:它不是一个全局配置解决方案,您只需轻按一下开关即可让所有现有代码正常工作,但使用扩展方法,它会更容易前进:

public static MvcHtmlString EditorFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, bool overrideId = false)
{
if (overrideId)
{
var propertyExpression = expression.Body as MemberExpression;
if (propertyExpression != null)
{
return html.EditorFor(expression, new { htmlAttributes = new { id = propertyExpression.Member.Name } });
}
}

return EditorExtensions.EditorFor(html, expression);
}

您甚至可以将 overrideId 参数默认为 true 以使您现有的所有用法正常工作,假设您在他们已经使用的命名空间中拥有扩展类。

关于javascript - ASP.NET MVC Razor 。如何不替换字段 ID 上的非美国字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43855978/

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