Wie erhalte ich Benutzereingaben für die Ajax.ActionLink-Aufrufmethode?
Angenommen, ich möchte einen Ajax-Aktionslink verwenden, um ein Feld ohne Änderung für die Ansicht zu speichern.
Hier ist meine Ansicht (es ist eine stark typisierte Ansicht, die an den Typ Model gebunden ist):
<%= Html.TextBox("myComment", Model.MyComment)%>
<%= Ajax.ActionLink("SAVE", "SaveComment", "Home",
Model, new AjaxOptions { HttpMethod = "POST"})
%>
Hier ist meine Aktion für Ajax Actionlink in Controller:
[AcceptVerbs(HttpVerbs.Post)]
public void SaveComment(Model model)
{
MyRepository repository = new MyRepository();
Model mod = repository.GetModel(model.ID);
mod.MyComment = model.MyComment;
try
{
repository.Save();
}
catch(Exception ex)
{
throw ex;
}
}
Das Problem ist: Ich kann die Benutzereingabe für die Methode Mycomment in action nicht im Textfeld abrufen. Unabhängig von der Benutzereingabe im Browser für MyComment, wenn Sie auf Ajax ActionLink SAVE klicken und dann den Wert aus param model für MyComment überprüfen, wird für MyComment nichts geändert.
Verwirrt ist: Das Modell muss zweiseitig betrachtet werden. aber für diesen Fall scheint es nicht. Dann habe ich den Ajax.ActionLink-Aufruf folgendermaßen geändert:
Ajax.ActionLink("SAVE", "SaveComment", "Home",
new {commentinput =Model.MyComment, new AjaxOptions { HttpMethod = "POST"})
Die Signatur der Aktionsmethode wurde folgendermaßen geändert:
public void SaveComment(string commentinput)
Ich kann die Benutzereingabe immer noch nicht erhalten.
Wie erhalte ich die Benutzereingabe in der Controller-Aktionsmethode?