Предположим, я хочу использовать ссылку действия 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)
Я все еще не могу получить пользовательский ввод.
Как получить пользовательский ввод в методе действия контроллера?