返回视图时,如何通过Ajax将控制器中的数据导入到View中?

时间:2012-11-24 09:01:47

标签: ajax asp.net-mvc asp.net-mvc-3 asp.net-ajax

我在我的控制器中有这个动作,它返回一个View ...

public ActionResult SaveTimeShift(...)
        {
            try
            {

                if (Request.IsAjaxRequest())
                    return PartialView(....);

                return View(userRecord);
            }
            catch (Exception e)
            {                
                return PartialView(...);
            }
        }

然后我的浏览页面中的html代码......

using (Ajax.BeginForm("SaveTimeShift", new { }, new AjaxOptions { HttpMethod = "Get", UpdateTargetId = "recordList", InsertionMode = InsertionMode.Replace, Confirm = "Do you want to save the new time shift?",  OnSuccess = "partialRequestSuccess(data)", OnFailure = "partialRequestFailure" }, new { @class = "form-inline" }))
        {

现在我在AjaxOptions的OnSuccess参数上的partialRequestSuccess(数据)函数...

function partialRequestSuccess(data) {
    if (data == 1)
        alert("New Time Shift has been saved.");
}

现在我的问题是....我试图设置一个将在我的控制器中设置的“数据”变量的值...我做了一些关于返回一个Json对象的研究,不幸的是我正在返回一个View在我的控制器中...现在我的“数据”变量有一个垃圾值...有没有办法从我的客户端知道我在数据库中保存数据是否成功...谢谢! :)

1 个答案:

答案 0 :(得分:0)

您可以在操作方法中将数据存储在模型或ViewBag中:

ViewBag.MyVariable = "myValue";

然后在JavaScript中使用

var myVariable = @Html.Raw(Json.Encode(ViewBag.MyVariable))