如何将参数从@ Url.Action传递给控制器​​函数

use*_*572 64 c# asp.net-mvc

我有一个功能CreatePerson(int id),我想通过id@Url.Action.

以下是参考代码:

public ActionResult CreatePerson(int id) //controller 
window.location.href = "@Url.Action("CreatePerson", "Person") + id";
Run Code Online (Sandbox Code Playgroud)

上面的代码无法将id值传递给CreatePerson函数.

Hat*_*oft 109

你可以通过这种方式传递它:

Url.Action("CreatePerson", "Person", new RouteValueDictionary(new { id = id }));
Run Code Online (Sandbox Code Playgroud)

或者也可以通过这种方式

Url.Action("CreatePerson", "Person", new { id = id });
Run Code Online (Sandbox Code Playgroud)

  • 如果代码在javascript中怎么办?`window.refresh({url:'@ Url.Action("CreatePerson","Person",new {id = Id})',` - >这段代码断了,因为我无法在那里传递一个变量.它只是如果硬编码有效:`@ Url.Action("CreatePerson","Person",new {id ="someId"})',` - >如何使这个工作? (7认同)
  • 这是我的工作:var url ='@ Url.Action("Foo","Bar",new {id ="replaceToken"})'; 然后url = url.replace("replaceToken",yourID); (6认同)

小智 23

public ActionResult CreatePerson (string id)

window.location.href = '@Url.Action("CreatePerson", "Person" , new {id = "ID"})'.replace("ID",id);

public ActionResult CreatePerson (int id)

window.location.href = '@Url.Action("CreatePerson", "Person" , new {id = "ID"})'.replace("ID", parseInt(id));
Run Code Online (Sandbox Code Playgroud)


小智 5

public ActionResult CreatePerson(int id) //controller 

window.location.href = '@Url.Action("CreatePerson", "Person")?id=' + id;
Run Code Online (Sandbox Code Playgroud)

或者

var id = 'some value';
window.location.href = '@Url.Action("CreatePerson", "Person", new {id = id})';
Run Code Online (Sandbox Code Playgroud)