2017-08-09 44 views
1

我有剃刀HTML輔助創建了幾個下拉菜單:如何將VueJS事件綁定到C#剃鬚刀輸入?

@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動作/事件綁定到此輸入? 這可能嗎?

回答

2

嘗試「的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>