1

我希望能够将我的 javascript 函数的字符串输出作为参数传递给我的 MVC 4 Razor Url Action,它本身作为自定义属性传递给输入元素。这是我的视图文件中的剃刀:

@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 回答