1

javascript関数の文字列出力をパラメーターとしてMVC4Razor Url Actionに渡せるようにしたいのですが、MVC 4 RazorUrlAction自体はカスタム属性としてinput要素に渡されます。これが私のビューファイルのかみそりです:

@Html.TextBoxFor(model => model.SomeProperty, new{data_autocomplete = @Url.Action("SomeAction","SomeController", new { someParameter= "here I want the string output of my javascript function" })})

どうすればこれを達成できますか?

4

2 に答える 2

1

これは、HTMLがレンダリングされた後にのみ実行できると思います。この背後にある理由は、Razorが主にHTMLのレンダリングに使用されるためです。Javascriptは、完全にレンダリングされたHTML要素に対してのみ実行できます。あなたの質問を理解した場合は、javascript関数によってレンダリングされるURLをテキストボックスのdata_autocompleteプロパティに動的に割り当てたいと思います。以下の方法をお勧めします

var currentURL = @Url.Action("SomeAction","SomeController");

var parameters  = YourJSMethodToreturnTheParameterValue();

$("#SomeProperty").attr("data_autocomplete",currentURL+'?someParameter='+parameters;

理想的には、TextBoxForはプロパティ名をIDとしてレンダリングします。

于 2012-12-03T08:02:46.987 に答える
0

これを試して:

var textbox = document.getElementById('SomeProperty');
var currentUrl = textbox.getAttribute('data_autocomplete');
currentUrl  += '?someParameter=' + myJsFunctionThatReturnsString();
textbox.setAttribute('data_autocomplete', currentUrl);
于 2012-12-03T07:44:34.687 に答える