【发布时间】:2016-07-12 08:17:35
【问题描述】:
我有一个在数据库中创建记录的操作:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Name,Description")] SampleViewModel sampleVM)
{
try
{
_service.Add(sampleVM);
this.ShowMessage(new ToastMessage(ToastType.Success, "Record Added", ToastrDisplayType.TopLeft));
}
catch (Exception ex)
{
this.ShowMessage(new ToastMessage(ToastType.Error, ex.Message, ToastrDisplayType.TopLeft));
return Json("failed");
}
return Json("success");
}
这个 Action 被 AJAX 调用:
$().ready(function () {
$("#btnSave").click(function () {
var serviceURL = '';
var sample = {
"Id": $('#hdnId').val(),
"Name": $("#txtName").val(),
"Description": $("#txtDescription").val(),
};
if (save_method == 'add') {
serviceURL = '@Url.Action("Create", "Samples")';
}
else if (save_method == 'edit') {
serviceURL = '@Url.Action("Edit", "Samples")';
}
$.ajax({
type: "POST",
url: serviceURL,
data: addRequestVerificationToken(sample),
success: function (data, textStatus, jqXHR) {
handleAjaxMessages();
},
});
});
});
问题是Index Action在Create Action之后被自动调用了:
[HttpGet]
public ActionResult Index()
{
return View();
}
由于调用了索引操作,所以不显示 Toast 消息,我怎样才能只调用创建操作(不调用索引操作)?
【问题讨论】:
-
无论您发布什么似乎都很好。你能看出是否调用了 create 动作吗?
-
是的,它被调用了,我已经放了一个断点。
-
那么你的 toast 消息也应该被调用。在哪一行代码之后,控件是否真正传递给 index 方法
-
请显示 btnSave 的 HTML
-
我用它来发送消息stackoverflow.com/questions/18474035/…。保存按钮的 html 是 。当我点击保存时调用索引操作然后创建操作。
标签: ajax asp.net-mvc