无法使用@ Url.Action传递多个参数

时间:2015-08-12 14:11:47

标签: c# asp.net-mvc asp.net-mvc-4 razor

我正在尝试使用@ Url.Action方法传递用户名和密码,但它只传递一个参数,第二个参数为null。我已经尝试了所有替代方案但没有成功。我也尝试传递类类型的对象但没有成功。这是一个简短的示例代码:

string User = ViewBag.Username;
string Pass = ViewBag.Pass;

 case "CHANGE_NEXT_LOGON":
                        <script type="text/javascript">
                            BootstrapDialog.show({
                                title: 'Change Password',
                                message: $('<div></div>').load('@Url.Action("PasswordChange", "UserPassword", new { Username = User, Password = Pass})'),
                                type: BootstrapDialog.TYPE_PRIMARY
                            });
                        </script>
                            break;

我正在使用boostrap对话框插件来生成用于验证的模态弹出窗口。但与RedirectToAction方法不同,@Url.Action方法似乎没有相同的方法。有人可以帮我一把吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

这个

'@Url.Action("PasswordChange", "UserPassword", new { Username, User, Password = Pass})'

应该是这样的

'@Url.Action("PasswordChange", "UserPassword", new { Username = User, Password = Pass})'

对象初始化程序中有错误类型。

答案 1 :(得分:2)

我找到了解决方法。问题是,由于您在Jquery.Load()方法中传递@ Url.Action,因此返回的URL存在问题。 @ Url.Action返回&amp;在url中进行编码以便解决此问题,你必须将整个方法封装在@ Html.Raw(@ Url.Action)中,它才能正常工作。

答案 2 :(得分:0)

在我的情况下,我可以使用输入,按钮或使用视图中的razor语法(.cshtml)的元素通过post / get方法向控制器传递最多5个参数。但由于未知的原因,从昨天开始,虽然我使用相同的语法,但我未能传递输入元素的第三个参数。它的第三个参数值改为&#34;形成&#34;自动。