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

ioekq8ef  于 2022-11-19  发布在  .NET
关注(0)|答案(4)|浏览(193)

有人能告诉我们如何使用Url.action()传递动态值吗?
比如,

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

在Url.action()方法中没有引用firstname和username。
如何使用Url.action()传递这些动态值?

j2cgzkjk

j2cgzkjk1#

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

let firstName = "John";
let userName = "Smith";
location.href = '@Url.Action("Display", "Customer")?uname=' + firstName + '&name=' + userName ;

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

o7jaxewo

o7jaxewo2#

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

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

在上面的例子中,**{{cust.Id}}**是一个AngularJS变量。但是可以用JavaScript变量替换它。
我还没有尝试过使用这个方法传递多个变量,但是我希望如果需要的话,它也可以被附加到URL上。

mwkjh3gx

mwkjh3gx3#

最简单的方法是:

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

nwsw7zdq4#

在我的情况下,它的工作很好,只是做了以下几点:

控制器:

[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();
});

希望这对瓦托斯有帮助!

相关问题