使用Url.action()传递动态javascript值

时间:2013-02-27 12:22:28

标签: c# javascript asp.net asp.net-mvc url.action

有人可以告诉我们如何使用Url.action()传递动态值。

有点像,

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

firstname,在Url.action()方法中没有得到用户名。

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

4 个答案:

答案 0 :(得分:112)

@Url.Action()方法是server-side上的进程,因此您无法将client-side值作为参数传递给此函数。您可以使用此方法生成的client-side url连接server-side变量,这是输出中的字符串。尝试这样的事情:

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

@Url.Action("Display", "Customer")上处理server-side,并在client-side处理其余字符串,将server-side方法的结果与{{1}连接起来}}

答案 1 :(得分:3)

这个答案可能与问题没有100%的相关性。但它确实解决了这个问题。 我找到了实现这一要求的简单方法。代码如下:

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

在上面的例子中, {{cust.Id}} 是一个AngularJS变量。但是,可以用JavaScript变量替换它。

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

答案 2 :(得分:0)

就我而言,只需执行以下操作即可:

控制器:

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

创建没有操作的表单:

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

设置按钮单击事件以在将操作添加到表单后触发提交:

var frmSomething= $("#frmSomething");
var btnSubmit= $("#btnSubmit");
var custNum = 100;

btnSubmit.click(function()
    {
        frmSomething.attr("action", "/Home/DoSomething?custNum=" + custNum);

        btnSubmit.submit();
    });

希望这有助于vatos!

答案 3 :(得分:0)

最简单的方法是:

  onClick= 'location.href="/controller/action/"+paramterValue'