我使用razor html助手创建了一些下拉列表:
@Html.DropDownList("formtype-filter", Model.FormTypes, "Any Type...",
new { @class = "form-control" })
我想添加一个'更改'使用VueJS
的此输入的事件处理程序通常我会尝试添加v-on:change="foo()"
然而,当我尝试将此添加到我的剃刀输入时,我收到错误,因为剃须刀模板不支持冒号,只要我知道
@Html.DropDownList("formtype-filter", Model.FormTypes, "Any Type...",
new { @class = "form-control", @v_on:change="foo()" })
//^- Not allowed
如何将Vue.js操作/事件绑定到此输入? 有可能吗?
答案 0 :(得分:6)
尝试使用'IDictionary'方法而不是属性作为对象
https://msdn.microsoft.com/en-us/library/gg569326(v=vs.111).aspx
您可以在控制器中实例化上面的词典:
@{
IDictionary<string, string> dic = new Dictionary<string, object>() { { "class", "form-control" }, { @"v-on:change", @"foo()" } };
}
@Html.DropDownList("formtype-filter", Model.FormTypes, "Any Type...", dic )
这是一个在我的机器上使用C#Asp.Net MVC 4.6.1在.cshtml文件中的示例:
@Html.Label("mylabell", new Dictionary<string, object> {{ "v-on:change", "foo()" } })
它呈现给:
<label for="mylabell" v-on:change="foo()">mylabell</label>