去掉 Ajax Beginform 并使用正常形式
@using(Html.Beginform("Create_Product","Admin"))
{
<input type="text" name="productName" />
<input type="submit" id="saveNewProduct" />
}
现在还有一些 javascript 来处理我们的 Ajax Saving
<script type="text/javascript">
$(function(){
$("#saveNewProduct").click(function(e){
var item=$(this);
e.preventDefault();
$.post("@url.Action("Create_Product","Admin")",
item.closest("form").serialize(),function(data){
if(data.Status=="Exist")
{
alert("The Product already exist");
}
else if(data.Status=="Success")
{
alert("Saved Successfully");
}
});
});
});
</script>
假设您的 Action 方法JSON
如果成功插入,则返回以下格式的返回
{ "Status": "Success" }
如果产品已经存在,它返回这个
{ "Status": "Exist" }
所以你的 Action 方法看起来像这样
[HttpPost]
public ActionResult Create_Product(YourViewModel model)
{
try
{
//check product exist, if yes return the below commented JSON
// return Json(new { Status="Exist" });
//else , Insert the data and Return Succes in JSON
// return Json(new { Status="Success" });
}
catch(Exception ex)
{
// log error
return Json(new { Status="Error" });
}
}