2012-06-18 57 views
0

我尝试从jquery传递变量到代码c#,但有些错误。我在JS验证码:将变量从jquery传递到c中的代码后出现错误#

<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,我不明白的地方的问题,有人可以帮我吗?

回答

3

你忘了等号:

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。它似乎没有在一个单独的文件中,因为我可以看到<script>内嵌标记,但这就是您在此处显示的内容,也许在您的实际代码中,它位于单独的文件中。

相关问题