ajaxアクションリンクを使用して、ビューを変更せずに1つのフィールドを保存するとします。ここでアクションメソッドのAjax.ActionLink呼び出しのユーザー入力を取得する方法は?
は、私の見解は、(それがモデルを型にバインド厳密に型指定されたビューである)である:ここでは
<%= Html.TextBox("myComment", Model.MyComment)%>
<%= Ajax.ActionLink("SAVE", "SaveComment", "Home",
Model, new AjaxOptions { HttpMethod = "POST"})
%>
は、コントローラ内のAjaxのActionLinkのための私の処置:
[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;
}
}
問題は次のとおりです。アクションメソッドのMycommentのテキストボックスにユーザー入力を取得できません。 Mycommentのブラウザでユーザーが入力したものが何であれ、Ajax ActionLink SAVEをクリックするとMycommentのparamモデルの値がチェックされますが、MyCommentでは何も変更されません。
混乱:モデルを双方向で表示するようにバインドする必要があります。しかし、この場合はそうではないようです。 はその後、私はAjax.ActionLink呼び出しを変更:私はまだユーザー入力を取得することはできません
public void SaveComment(string commentinput)
:
Ajax.ActionLink("SAVE", "SaveComment", "Home",
new {commentinput =Model.MyComment, new AjaxOptions { HttpMethod = "POST"})
その後、としてアクションメソッドのシグネチャを変更しました。
コントローラアクションメソッドでユーザー入力を取得するにはどうすればよいですか?
感謝。私のビューはテーブルで、<%= Html.TextBox( "myComment"、Model.MyComment)%>はテーブルの各行に対してです。 – KentZhou