0

我在我的 .js 文件中放置了这个 jquery 函数......只要我的页面被加载,它就可以工作......但是当我将它更改为作为部分视图返回时......这个警报将不再起作用......它怎么会再次工作?

  $(document).ready(function () {

    var msg = '@ViewBag.Message';

    if (msg == '1')
        alert("New Time Shift has been saved.");

});

在我的控制器动作中......

   if (Request.IsAjaxRequest())
          return PartialView("_RecordList", userRecord); //alert wont work here...

   return View(userRecord); //this will return the whole view thus the alert works here
4

2 回答 2

1

不会从 ajax 请求执行文档就绪功能。您可以将 javascript 代码提取到整个视图的一个单独的函数部分。您还可以创建一个回调函数以在部分请求成功时执行,该函数也将调用它:

$(document).ready(function () {
    var msg = '@ViewBag.Message';
    initFunction(msg);
});

function initFunction(msg){
    if (msg == '1')
        alert("New Time Shift has been saved.");
}

function partialRequestSuccess(data){
    //store the message somewhere in the partial view, like a hidden div and get it using jquery
    var msg = ...
    initFunction(msg);
}

然后你可以设置ajax请求的完整回调来调用我们刚刚创建的成功回调。如果您使用的是 MVC ajax 帮助程序,则可以设置一个 Success 参数,如下所示:

@using(Ajax.BeginForm(new AjaxOptions{ OnSuccess = "partialRequestSuccess" }))
于 2012-11-19T20:52:23.677 回答
0

I have this jquery function placed in my .js file....

var msg = '@ViewBag.Message';

这是服务器代码,仅适用于*.cshtml文件,这是最小的一个问题。

于 2012-11-19T12:19:49.743 回答