Как получить пользовательский ввод для вызова Ajax.ActionLink для метода действия?
Предположим, я хочу использовать ссылку действия ajax, чтобы сохранить одно поле без изменений для просмотра.
Вот мое мнение (это строго типизированное представление, привязанное к типу Model):
<%= 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, для MyComment ничего не меняется.
Смущает: модель должна быть двухсторонней. но для этого случая, похоже, нет. Затем я изменил вызов Ajax.ActionLink на:
Ajax.ActionLink("SAVE", "SaveComment", "Home",
new {commentinput =Model.MyComment, new AjaxOptions { HttpMethod = "POST"})
затем изменил сигнатуру метода действия как:
public void SaveComment(string commentinput)
Я все еще не могу получить пользовательский ввод.
Как получить пользовательский ввод в метод действия контроллера?