名字、用户名在 Url.action() 方法中没有被引用。

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

4个回答

@Url.Action()方法是在 上进行的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-side方法的结果与 连接起来client-side

但是如果没有那个参数路径是不同的呢?
2021-04-29 04:19:43
我最终向 <a> 元素添加了一个 onclick 事件,该元素附加到使用 Url.Action 设置的 href 属性
2021-05-05 04:19:43

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

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

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

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

在我的情况下,只需执行以下操作即可:

控制器:

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

也许这将是更面向未来的,如果你能替换字符串/Home/DoSomething@Url.Action("DoSomething", "TheController")这样,如果您重命名控制器和/或操作,您的相关网址仍将保持有效。
2021-04-27 04:19:43

最简单的方法是:

  onClick= 'location.href="/controller/action/"+paramterValue'
你真的需要一个 onclick 事件吗?你能对表单的action属性做同样的事情吗...
2021-05-09 04:19:43
其它你可能感兴趣的问题
上一篇如何将键值元组数组转换为对象 下一篇正则表达式匹配括号之间的内容