在MVC 3中的url中传递多个参数

pra*_*ech 5 asp.net asp.net-mvc-3

我在控制器中有一个名为"Registration"的动作方法

public ActionResult Facility(int id = 0, int contractId = 0)
Run Code Online (Sandbox Code Playgroud)

当我从url调用这个方法时

/Registration/Facility/0?contractId=0
Run Code Online (Sandbox Code Playgroud)

它工作正常.现在,当我尝试在另一种方法中构建上面的url时

return RedirectToAction("Facility/0?contractId="+ model.ContractId);
Run Code Online (Sandbox Code Playgroud)

它不起作用,浏览器中的网址构造不好就像它

/Registration/Facility/0%3fcontractId%3d0
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我,我在这里做错了什么?

jao*_*jao 11

试试这个:

return RedirectToAction("Facility", new { id = 0, contractId = model.ContractId});
Run Code Online (Sandbox Code Playgroud)

看到这个答案

  • 您的代码无法正常工作,因为该方法的重载会自动转义?和/字符,以便您不必(它假定如果您想传递参数,您将使用接受参数的重载).请记住,参数不是URL,而是操作名称.如果要提供URL,请使用"重定向" (3认同)