![](/img/trans.png)
[英]In ASP.NET MVC how do I pass in ASP.NET razor strings into a javascript onclick function?
[英]ASP.NET MVC Razor. How to do not replace non us characters on fields IDs?
如果我的POCO類確實具有這樣的屬性:
public int Número {get; set;}
他們把它寫在我的觀點上:
@Html.EditorFor(model => model.Número)
它使用下划線替換非標准us字符來呈現輸入,如下所示:
<input name="Número" id="N_mero" type="text" />
有可能以某種方式避免它嗎? 我想保留輸入id上的非標准字符,以便輕松地使用Javascript查詢。
您可以使用接受視圖數據對象的EditorFor
重載來覆蓋用於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,以使所有現有用法都能正常使用,前提是您已經在擴展類中使用了擴展類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.