2017-08-09 9 views
1

私はかみそりのHTMLヘルパーで作成したいくつかのドロップダウンを持っている:VueJSイベントをC#razor入力にバインドする方法はありますか?

@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のアクション/イベントをこの入力にバインドするにはどうすればよいですか? 可能ですか?

@{ 
    IDictionary<string, string> dic = new Dictionary<string, object>() { { "class", "form-control" }, { @"v-on:change", @"foo()" } }; 
} 
@Html.DropDownList("formtype-filter", Model.FormTypes, "Any Type...", dic) 

これが私の上で動作例です。

答えて

2

すると、コントローラで上記の辞書をインスタンス化できるオブジェクト

https://msdn.microsoft.com/en-us/library/gg569326(v=vs.111).aspx

として代わりに属性の「IDictionaryを」メソッドを試してみてください.cshtmlファイルのC#Asp.Net MVC 4.6.1でのマシーン

@Html.Label("mylabell", new Dictionary<string, object> {{ "v-on:change", "foo()" } })

それがレンダリング:

<label for="mylabell" v-on:change="foo()">mylabell</label>

関連する問題