web-dev-qa-db-fra.com

comment passer le paramètre de @ Url.Action à la fonction de contrôleur

J'ai une fonction CreatePerson(int id), je veux passer id à partir de @Url.Action

Ci-dessous le code de référence:

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

le code ci-dessus ne parvient pas à transmettre la valeur id à la fonction CreatePerson.

60
user1120572

vous pouvez le passer de cette façon:

Url.Action("CreatePerson", "Person", new RouteValueDictionary(new { id = id }));

OU peut également passer de cette façon

Url.Action("CreatePerson", "Person", new { id = id });
102
HatSoft
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));
19
Pàldi Gergő

Cette façon de passer la valeur du contrôleur à la vue:

ViewData["ID"] = _obj.ID;

Voici le moyen de passer la valeur de View à Controller:

<input type="button" title="Next" value="Next Step" onclick="location.href='@Url.Action("CreatePerson", "Person", new { ID = ViewData["ID"] })'" />
2
Anjan Kant

Essaye ça:

public ActionResult CreatePerson(int id) //controller 

window.location.href = "@Url.Action("CreatePerson", "Person")?Id='+Id+'";

ça fonctionne très bien en passant paramètre.

1
Benet Shibin
public ActionResult CreatePerson(int id) //controller 

window.location.href = '@Url.Action("CreatePerson", "Person")?id=' + id;

Ou

var id = 'some value';
window.location.href = '@Url.Action("CreatePerson", "Person", new {id = id})';
1
Jain

Besoin de deux paramètres ou plus Passage de la vue Throw au contrôleur Utiliser cette syntaxe.

var id=0,Num=254;var str='Sample';    
var Url = '@Url.Action("ViewNameAtController", "Controller", new RouteValueDictionary(new { id= "id", Num= "Num", Str= "str" }))'.replace("id", encodeURIComponent(id));
    Url = Url.replace("Num", encodeURIComponent(Num));
    Url = Url.replace("Str", encodeURIComponent(str));
    Url = Url.replace(/&amp;/g, "&");
window.location.href = Url;
0
Gupta

Essaye ça

public ActionResult CreatePerson(string Enc)

 window.location = '@Url.Action("CreatePerson", "Person", new { Enc = "id", actionType = "Disable" })'.replace("id", id).replace("&amp;", "&");

vous obtiendrez l'id à l'intérieur de la chaîne Enc.

0
V.V
@Url.Action("Survey", "Applications", new { applicationid = @Model.ApplicationID }, protocol: Request.Url.Scheme)
0
Sanjay Sharma

Si vous utilisez Url.Action dans JavaScript, vous pouvez

var personId="someId";
$.ajax({
  type: 'POST',
  url: '@Url.Action("CreatePerson", "Person")',
  dataType: 'html',
  data: ({
  //insert your parameters to pass to controller
    id: personId 
  }),
  success: function() {
    alert("Successfully posted!");
  }
});
0
Keerthi

devriez-vous le passer de cette façon:

public ActionResult CreatePerson(int id) //controller 
window.location.href = "@Url.Action("CreatePerson", "Person",new { @id = 1});
0
Zeyad Qunees