我的MVC应用程序中有以下javascript函数,
function EditProducts(productId, orderId, employeeId, mode)
{
mode = "edit";
debugger;
var url = '@Url.Action("Index", "Home", new { productId = "__productId__", orderId = "__orderId__", employeeId = "__employeeId__", Mode = "__mode__"})';
var params = url.replace('__productId__', productId).replace('__orderId__', orderId).replace('__employeeId__', employeeId).replace('__mode__', mode);
window.location.href = params;
}
但它不起作用。这是我的控制器代码,我在下面的vaiables中没有得到任何值,
public ActionResult Index(int productId, int orderId, int employeeId, string mode)
{
return View();
}
关于如何通过url.action传递多个参数的任何想法?
答案 0 :(得分:11)
使用@ Html.Raw阻止&符号在javascript代码中转换为&
function EditProducts(productId, orderId, employeeId, mode)
{
mode = "edit";
debugger;
var url = '@Html.Raw(Url.Action("Index", "Home", new { productId = "__productId__", orderId = "__orderId__", employeeId = "__employeeId__", Mode = "__mode__"}))';
var params = url.replace('__productId__', productId).replace('__orderId__', orderId).replace('__employeeId__', employeeId).replace('__mode__', mode);
window.location.href = params;
}
答案 1 :(得分:1)
使用Url.Action
辅助方法获取操作方法的基本URL,并将查询字符串参数添加到该方法中。
这应该可以正常工作
$(function(){
var productId = 23;
var employeeId = 44;
var orderId = 34;
var mode = "tes";
var url = '@Url.Action("Index", "Post")';
url += '?productId=' + productId + '&orderId=' + orderId +
'&employeeId=' + employeeId + '&mode=' + mode;
window.location.href = url;
答案 2 :(得分:0)
仅将数字转换为字符串
function EditRoles(companyid, roleid) {
//debugger;
var url = '@Html.Raw(Url.Action("EditRol", "Rol", new { companyID = "__companyid__", roleID = "__roleID__"}))';
var params = url.replace('__companyid__', companyid.toString()).replace('__roleID__', roleid.toString());
window.location.href = params;
}