相关疑难解决方法(0)

ASP.NET MVC 4:无法修改jQuery Unobtrusive Ajax

使用ASP.NET MVC 4NuGet管理包.

升级到jQuery 1.9.1via后NuGet,我开始收到JavaScript关于删除live()函数的错误jQuery 1.9.x.

我点击F5从VS.NET运行调试模式,进入登录页面,得到以下信息:

Microsoft JScript错误

发现这个StackOverflow答案:https://stackoverflow.com/a/14512797 并进行了4次更改~\Scripts\jquery.unobtrusive-ajax.js.

我的~\Scripts\jquery.unobtrusive-ajax.js:

    $(document).on("click", "a[data-ajax=true]", function (evt) {
       ...
    });
    $(document).on("click", "form[data-ajax=true] input[type=image]", function (evt) {
       ...
    });
    $(document).on("click", "form[data-ajax=true] :submit", function (evt) {
       ...
    });
    $(document).on("submit", "form[data-ajax=true]", function (evt) {
       ...
    });
Run Code Online (Sandbox Code Playgroud)

我也物理删除jquery.unobtrusive-ajax.min.js并用于WebGrease 1.3.0从我的更新中重新生成它~\Scripts\jquery.unobtrusive-ajax.js.

但是,出于某种原因,我对不使用该.live()功能的更改并不坚持.我尝试停止运行MVC应用程序的IIS Express 8.0网站(localhost:63798).

在尝试再次运行F5以在调试模式下运行之前,还尝试执行Build-> Clean Solution,Build-> Rebuild Solution.

如果有人以前经历过这个并且有任何见解,我将非常感激.先感谢您.

asp.net-mvc jquery asp.net-mvc-4 unobtrusive-ajax visual-studio-2012

14
推荐指数
2
解决办法
1万
查看次数

在单独的线程中执行操作以解锁UI

我有一个用于生成报告的表格。我们正在使用RDLC报告,并且报告已加载到aspx页面中。

因此,这是将Form表单目标设置为的代码_blank,并在新标签页中打开。

@using (Html.BeginForm("AssetReports", "AssetReports", FormMethod.Post, new { target = "_blank" }))
{
    <div class="row mt-15">
        <div class="col-md-12 text-center">
            <input type="submit" class="btn btn-primary" value="Show Report" />
        </div>
    </div>
}
Run Code Online (Sandbox Code Playgroud)

这是Controller动作,重定向到Report aspx页面,在该页面上处理和显示报告。

[HttpPost]
public void AssetReports(AssetReportsDTO model, AssetReportParametersDTO reportParameters)
{
    SessionHandler.AssetReport = model;
    SessionHandler.AssetReportParameters = reportParameters;

    switch (model.SelectedReportType)
    {
        case AssetReportTypesEnum.ExcessiveIdleReport:
            Response.Redirect("~/Reports/AssetReports/ExcessiveIdleReport/ExcessiveIdleReport.aspx");
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,生成报告需要3.4分钟。在这段时间内,UI被阻止了,

我们希望报表在单独的线程上生成,以便用户可以在生成报表时使用UI。

MVC C#中是否可以在单独的线程中执行此操作?

我尝试使用以下内容,但随后使用了上下文和会话 NULL

Task.Factory.StartNew(() =>
{
    switch (model.SelectedReportType)
    {
        case AssetReportTypesEnum.ExcessiveIdleReport:
            Response.Redirect("~/Reports/AssetReports/ExcessiveIdleReport/ExcessiveIdleReport.aspx");
            break;
    }
}); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-mvc-4

5
推荐指数
1
解决办法
1061
查看次数