有没有办法为使用html帮助器生成的字段生成客户端ID?
我有几个组件,有时在另一种形式,我不想将javascript事件附加到他们.
所以,对于样品,我希望:
@Html.TextBoxFor(model => model.client.email)
<script>
$('#@getmyusercontrolid(model=>model.client.email)').val("put your mail here");
</script>
Run Code Online (Sandbox Code Playgroud)
Joh*_*eer 31
我用这个助手:
public static partial class HtmlExtensions
{
public static MvcHtmlString ClientIdFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{
return MvcHtmlString.Create(htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(ExpressionHelper.GetExpressionText(expression)));
}
}
Run Code Online (Sandbox Code Playgroud)
像使用任何其他助手一样使用它: @Html.ClientIdFor(model=>model.client.email)
The*_*lus 11
MVC 5有NameFor,所以使用它的例子是:
@Html.TextBoxFor(model => model.client.email)
<script>
$('#@Html.NameFor(model => model.client.email)').val("put your mail here");
</script>
Run Code Online (Sandbox Code Playgroud)
编辑
IdFor也可用,在这种情况下可能更合适NameFor.
使用@Html.IdFor(model => model.client.email)如该功能已经存在像这样:
@Html.TextBoxFor(model => model.client.email)
<script>
$('#@Html.IdFor(model => model.client.email)').val("put your mail here");
</script>
Run Code Online (Sandbox Code Playgroud)
您可以在以下页面阅读更多相关信息:https: //msdn.microsoft.com/en-us/library/hh833709%28v=vs.118%29.aspx
您可以尝试在生成输入字段时在HtmlAttributes参数中指定id,例如
@Html.TextBoxFor(model => model.client.email, new { id = "emailTextBox" })
Run Code Online (Sandbox Code Playgroud)
然后你可以在你的javaScript中使用它
var email = $('#emailTextBox').val();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8311 次 |
| 最近记录: |