0

我尝试将变量从 jquery 传递给代码 c#,但出了点问题。我在js中有这段代码:

<script type="text/javascript">
    var mySerial = '12345';
    var fooUrl = '@Url.Action("Foo", "Home")';
    window.location.href = fooUrl + '?mySerial' + encodeURIComponent(mySerial);
</script>

在控制器中:

[HttpPost]
public ActionResult Foo(string mySerial)
{
    return View();
}

执行后我保留这个网址:http://localhost:2214/@Url.Action("Foo",%20"Home")?mySerial12345我不明白问题出在哪里,有人可以帮我吗?

4

1 回答 1

3

您忘记了等号:

window.location.href = fooUrl + '?mySerial=' + encodeURIComponent(mySerial);

注意mySerial=而不是mySerial.

@Url.Action顺便说一句,您似乎使用的是 WebForms 视图引擎而不是 Razor,如果您在生成的输出中看到文字,至少这是我得出的结论。如果是这种情况,请根据您使用的视图引擎使用正确的语法:

<script type="text/javascript">
    var mySerial = '12345';
    var fooUrl = '<%= Url.Action("Foo", "Home") %>';
    window.location.href = fooUrl + '?mySerial=' + encodeURIComponent(mySerial);
</script>

最后说明:如果这是在单独的 javascript 文件中,则不能使用服务器端帮助程序,例如Url.Action. 它似乎不在单独的文件中,因为我可以看到<script>内联标记,但这就是您在此处显示的内容,也许在您的实际代码中它位于单独的文件中。

于 2012-06-18T14:55:48.783 回答