【问题标题】:Error after passing variable from jquery to code in c#将变量从jquery传递到c#中的代码后出错
【发布时间】:2012-06-18 14:55:05
【问题描述】:

我尝试将变量从 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,但我不明白问题出在哪里,有人可以帮助我吗?

【问题讨论】:

    标签: jquery asp.net asp.net-mvc-3


    【解决方案1】:

    你忘记了等号:

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

    注意mySerial= 而不是mySerial

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      相关资源
      最近更新 更多