У меня есть следующий частичный видMVC Ajax форма для редактируемые строки таблицы
@model Marks.Web.ViewModels.AssignmentMarkViewModel
<div class="table">
@using (Ajax.BeginForm("_MarkInlineEditor", "Semesters", new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "editor" + Model.AssignmentId
}, new { @id = "editor" + Model.AssignmentId, @class = "tr" }))
{
<span class="td">@Model.AssignmentName</span>
<span class="td">@(Model.Mark.HasValue ? Model.Mark.Value.ToString("#.##") : "")</span>
<span class="td">@Model.Weight.ToString("#.##")</span>
<span class="td">@(Model.ActualMark.HasValue ? Model.ActualMark.Value.ToString("#.##") : "")</span>
@Html.HiddenFor(model => model.AssignmentId)
<span class="td"><button type="submit" name="option" value="edit">Edit</button></span>
<span class="td"><button type="submit" name="option" value="clear">Clear</button></span>
}
</div>
При нажатии на кнопку Edit, метод действия возвращает этот другой частичный вид, который служит в режиме редактирования:
@model Marks.Web.ViewModels.AssignmentMarkViewModel
<div class="table">
@using (Ajax.BeginForm("_MarkInlineViewer", "Semesters", new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "viewer" + Model.AssignmentId
}, new { @id = "viewer" + Model.AssignmentId, @class = "tr" }))
{
<span class="td">@Html.TextBoxFor(m => m.AssignmentName)</span>
<span class="td">@Html.TextBoxFor(m => m.Mark)</span>
<span class="td">@Html.TextBoxFor(m => m.Weight, new { required="required", type="number" })</span>
<span class="td">xx</span>
@Html.HiddenFor(model => model.AssignmentId)
<span class="td"><button type="submit" name="option" value="save">Save</button></span>
<span class="td"><button type="submit" name="option" value="cancel">Cancel</button></span>
}
</div>
Когда я нажимаю кнопку «Сохранить», вызываемый метод действия должен быть _MarkInlineViewer
, но вместо этого он вызывает _MarkInlineEditor
. Что-то не так с тем, как я это делаю? Вот методы действий:
public PartialViewResult _MarkInlineEditor(string option, int assignmentId)
{
var marksRepo = new MarksRepo();
var mark = marksRepo.GetMarkById(assignmentId);
var markVm = Mapper.Map<AssignmentMarkViewModel>(mark);
return PartialView(option == "edit" ? "_MarkInlineEditor" : "_MarkInlineViewer", markVm);
}
public PartialViewResult _MarkInlineViewer(AssignmentMarkViewModel amvm)
{
var marksRepo = new MarksRepo();
var mark = Mapper.Map<AssignmentMark>(amvm);
var updatedMark = marksRepo.UpdateMark(mark);
var updatedAmvm = Mapper.Map<AssignmentMarkViewModel>(updatedMark);
return PartialView("_MarkInlineViewer", updatedAmvm);
}
вы не можете вставить формы тегов – Mate
Я знаю, что это то, что он здесь делает? Я думал, что это заменит всю форму. – muttley91