【问题标题】:js files not getting loaded ajax loading of partial view MVC 4js文件未加载局部视图MVC 4的ajax加载
【发布时间】:2014-09-30 05:43:03
【问题描述】:

自最近几天以来,我一直面临一个问题,即我无法访问 Mainview 中引用的局部视图中的任何 .js 文件。即使我尝试在部分视图中再次引用相同的文件,但没有运气。我正在使用 ajax 链接将部分视图打开为模式弹出窗口。据我所知,在 Ajax 调用的情况下不会加载 js 文件。所以试过 http://geekswithblogs.net/DougLampe/archive/2010/11/12/execute-javascript-in-mvc-partial-view.aspxlink。但没有运气。我不确定在公共 ActionResult DynamicJavaScript() 方法中写什么。

但是,如果我在局部视图中编写嵌入式脚本,它当然可以使用局部视图而不是在 js 文件中加载。 PSB 我的代码打开部分视图。

@Ajax.ActionLink("Edit", "EditVoucherBook", "Tasks", new { id = m1.vbkID, PageNumber = Model.PageNumber }, new AjaxOptions { HttpMethod = "get", OnBegin = "openmodalpopup", OnComplete = "closemodalpopup" }, new { @class = "modal-popup" }).

openmodalpopup 和 closemodalpopup 需要写在局部视图中,用于显示 ajax 加载图像 (.gif)。

提前致谢。

【问题讨论】:

  • “无法在局部视图中访问 .js 文件”是什么意思?是方法调用不起作用吗?是否有任何事件绑定?一些代码将有助于给出正确的答案
  • 是的,js文件中的方法或函数没有被调用。

标签: jquery ajax asp.net-mvc-4 partial-views


【解决方案1】:

Heloo 我也有同样的问题我解决了它只需将 @Ajax.ActionLink 更改为带有内联 javascript 的按钮

我的旧代码在我的 list.cshtml 部分屏幕中

@Ajax.ActionLink("Add Notes", "OpenCreateForm", new { merchantNumber = Model.MerchantNumber }, new AjaxOptions { InsertionMode = InsertionMode.Replace , HttpMethod = "GET", OnSuccess = "OpenPopup" }, new { @class = "btn form-size200" })

“OpenCreateForm”是我的控制器方法。这种情况下我无法访问我捆绑的任何 js 脚本。

我将 @Ajax.ActionLink 更改为带有 onclick 的简单按钮

<input type="button" class="btn form-size200" value="Add Notes" onclick="openFormCreate(@Model.MerchantNumber);" />

然后在我的索引文件中我写这个 js 代码。

function openFormCreate(mrcNumber) {
    $.ajax({
        contentType: 'application/html',
        url: '@Url.Action("OpenCreateForm", "BranchNotes")',
        dataType: 'html',
        type: 'GET',
        data: {
            merchantNumber: mrcNumber
        }
    }).done(function (result) {
        CreateDialog('Notes');
        myDialog.html(result).dialog().dialog('open');
    });
}

我的控制器是

    public ActionResult OpenCreateForm(string merchantNumber)
    {
        BranchNotesDetailViewModel viewModel = new BranchNotesDetailViewModel()
        {
            MerchantBranchNotes = new MerchantBranchNote()
            {
                MerchantNumber = long.Parse(merchantNumber),
            }
        };

        return PartialView("Edit", viewModel);
    }

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多