Предположим, я хочу использовать ссылку ajax для сохранения одного поля без изменений для просмотра.Как получить пользовательский ввод для вызова Ajax.ActionLink для действия?
Вот мой взгляд (это сильно типизированных вид обязан ввести модель):
<%= Html.TextBox("myComment", Model.MyComment)%>
<%= Ajax.ActionLink("SAVE", "SaveComment", "Home",
Model, new AjaxOptions { HttpMethod = "POST"})
%>
Вот мое действие для АЯКС 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, я проверяю значение из модели param для Mycomment, ничего не изменилось для MyComment.
Confused is: Модель должна быть привязана для просмотра в двух направлениях. но для этого случая, похоже, нет. Тогда я изменил вызов Ajax.ActionLink на:
Ajax.ActionLink("SAVE", "SaveComment", "Home",
new {commentinput =Model.MyComment, new AjaxOptions { HttpMethod = "POST"})
затем изменил метод действий сигнатуру:
public void SaveComment(string commentinput)
Я до сих пор не могу получить пользовательский ввод.
Как получить вход пользователя в метод действия контроллера?
спасибо. но мое представление представляет собой таблицу, <% = Html.TextBox («myComment», Model.MyComment)%> для каждой строки таблицы. – KentZhou