使用Url.action()传递dynamicjavascript值

任何人都可以请告诉如何使用Url.action()传递dynamic值。

就像是,

var firstname="abc"; var username = "abcd"; location.href = '@Html.Raw(@Url.Action("Display", "Customer", new { uname = firstname ,name = username}))'; 

名字,用户名没有获得在Url.action()方法内部的缓冲。

如何使用Url.action()传递这些dynamic值?

@Url.Action()方法是在server-side ,所以你不能把一个client-side值作为parameter passing给这个函数。 您可以将client-sidevariables与由此方法生成的server-side url(输出中的string)连接起来。 尝试这样的事情:

 var firstname = "abc"; var username = "abcd"; location.href = '@Url.Action("Display", "Customer")?uname=' + firstname + '&name=' + username; 

server-side处理@Url.Action("Display", "Customer") ,并在client-side处理string的其余部分,将server-side方法的结果与client-side

在我的情况下,它只是通过做以下工作很好:

控制器:

 [HttpPost] public ActionResult DoSomething(int custNum) { // Some magic code here... } 

创build没有任何操作的表单:

 <form id="frmSomething" method="post"> <div> <!-- Some magic html here... --> </div> <button id="btnSubmit" type="submit">Submit</button> </form> 

设置button点击事件触发提交后添加到表单的行动:

 var frmSomething= $("#frmSomething"); var btnSubmit= $("#btnSubmit"); var custNum = 100; btnSubmit.click(function() { frmSomething.attr("action", "/Home/DoSomething?custNum=" + custNum); btnSubmit.submit(); }); 

希望这有助于vatos!

这个答案可能不是100%相关的问题。 但它确实解决了这个问题。 我发现这个简单的方法来达到这个要求。 代码如下:

 <a href="@Url.Action("Display", "Customer")?custId={{cust.Id}}"></a> 

在上面的例子中, {{cust.Id}}是一个AngularJSvariables。 但是可以用JavaScriptvariablesreplace它。

我还没有尝试使用此方法传递多个variables,但我希望,如果需要也可以附加到Url。