71

谁能告诉如何使用 Url.action() 传递动态值。

就像是,

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

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

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

4

4 回答 4

154

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

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-sideclient-side

于 2013-02-27T12:32:27.050 回答
9

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

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

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

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

于 2017-04-24T08:42:45.137 回答
1

最简单的方法是:

  onClick= 'location.href="/controller/action/"+paramterValue'
于 2018-06-14T09:59:19.353 回答
1

就我而言,只需执行以下操作就可以很好地工作:

控制器:

[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!

于 2016-10-21T18:00:44.580 回答