我在Asp MVC4中使用Ajax加载PartialView。但是,当我单击确认或删除时,如何刷新PartialView中的数据并保持当前页面状态? 这是Jquery:
$("button").click(function () {
var weekno = [];
$.each($(".selectpicker option:selected"), function () {
weekno.push($(this).val());
});
$.ajax({
url: "/Home/PartialTable",
type: "POST",
data: JSON.stringify(weekno),
cache: false,
contentType: "application/json; charset=utf-8",
dataType: "html",
success: function (view) {
$('#viewpartial').html(view);
},
error: function (req, status, error) {
alert("Error! Please select Weekly No !!");
}
});
});
加载PartialView Html:
<div id ="viewpartial" class="tab-content" style="overflow: scroll" </div>
PartialView是一个表
确认行动:
@Html.ActionLink("Confirm", "Confirm", new { Action = "Confirm", fn = file.FILEID}, new { @class = "btn btn-primary", id ="confirm" })
public ActionResult Confirm(Int32 fn) // fn is item ID
{
if (ModelState.IsValid)
{
var fname = me.MyTaBle.Where(f => f.FILEID.Equals(fn)).FirstOrDefault();
if (fname.STATUS != null && fname.STATUS == "OPEN")
{
try
{
fname.STATUS = "LOCK".ToString();
fname.CFMDATE = DateTime.Now;
me.SaveChanges();
}
catch (Exception ex)
{
ViewBag.Message = "Error" + ex.Message.ToString();
}
}
}
// **What's return in here??**
}
我想知道确认行动的回报是什么!谢谢所有
答案 0 :(得分:0)
如果您不想刷新原始页面,则应通过ajax进行确认。
此外,最好将任何更新数据的代码置于HttpPost
操作方法之后,以防止人们尝试通过具有查询字符串值的浏览器执行您的方法。
因此,请使用Confirm
属性标记HttpPost
方法。您可以返回json结构作为方法的返回值。
[HttpPost]
public ActionResult Confirm(Int fn)
{
try
{
// update your db record here
return Json( new { status="success"});
}
catch(Exception ex)
{
//log the exception
return Json( new { status="error"});
}
}
给你的链接id
,以便我们以后可以在jQuery中使用它。
@Html.ActionLink("Confirm", "Confirm","Home",
new { fn = file.FILEID, new { id="confirmLink"})
在您的脚本中,您可以在此链接上收听click
事件,然后对您的操作方法进行ajax调用。您可以使用jQuery post
方法来执行此操作。
$(function(){
$("#confirmLink").click(function(e){
e.preventDefault();
_this=$(this);
$.post(_this.attr("href"),function(res){
if(res.status==="success")
{
alert("Updated successfully");
//If you want to update some part of your page, you can do it here.
//Ex : Getting the updated content from an ajax call and update UI
}
else
{
alert("Error updating");
}
});
});
});