我使用Ajax.BeginForm
@using (Ajax.BeginForm("CreatePlayer", "Admin", null, new AjaxOptions() { HttpMethod = "post" }))
{
<div class="row">
<div class="col-md-6">
<div class="text-style-roboto form-group">
<label>Имя</label>
@Html.TextBoxFor(x => x.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.Name)
</div>
<div class="form-group">
<button type="submit" class="button button-create">Добавить</button>
</div>
</div>
</div>
}
当我按下按钮制作一个新的播放器时,会创建一个播放器,但表格仍会保留。
所需的行为是应清除表单,但不清除。我不怎么用jQuery清除表格。我应该刷新页面还是其他方式。
我在控制器中的发布操作为-
[HttpPost]
public JsonResult CreatePlayer(CreatePlayerModel model, string TeamNameId)
{
if (ModelState.IsValid)
{
if (TeamNameId != string.Empty)
{
try
{
int newTeamId = int.Parse(TeamNameId);
repository.CreatePlayer(model, newTeamId);
TempData["message"] = string.Format("Игрок {0} {1} сохранены", model.Name, model.Surname);
return new JsonResult()
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new { result = "success" }
};
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
}
}
}
IEnumerable<SelectListItem> list = new SelectList(repository.Teams, "Id ", "Name");
ViewBag.ChoosingTeam = list;
return new JsonResult()
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new { result = "error" }
};
}
如果需要,我可以通过html表单对Ajax进行操作。
答案 0 :(得分:0)
如果您使用的是AJAX,则不会自动清除该表单,您需要清除它。您可以将输入文本和文本区域的值设置为''
。另外,您需要重置选择的值。
假设表单ID为CreatePlayer
,然后将输入文本和textarea的值设置为空白(''
)-
$('#CreatePlayer').find("input[type=text], textarea").val('');
类似地,您可以将select的值设置为您选择的默认值。假设要通过第一个选项重置的选择和选择的ID为teamSel
,则重置值-
$("#teamSel").val($("#teamSel option:first").val());
如果在表单中添加了重置按钮,则可以触发重置,但是不会为表单输入设置默认值。触发重置-
$("#CreatePlayer").trigger('reset');
__更新___
您应该在OnSuccess
和/或OnFailure
中调用这些(取决于您的要求)。
当AJAX调用成功返回时,您应该清除表格。也就是说,在OnSuccess
内清除表格。
如果调用OnFailure
,则应该显示错误。