首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC 4- Ajax -用一个视图替换另一个视图

MVC 4- Ajax -用一个视图替换另一个视图
EN

Stack Overflow用户
提问于 2013-04-18 20:50:30
回答 1查看 9.4K关注 0票数 5

我正在尝试将主视图中的div内容替换为部分视图,这取决于所单击的@Ajax.ActionLink。

最初,我加载了_CaseLoad局部视图,然后当我单击相关的ActionLink时,我希望能够在两个局部视图_CaseLoad和_Vacancies之间切换。我在'Main‘文件夹中有分部视图和索引视图。

当我点击‘职位空缺’链接时,它会简短地显示LoadingElementID,但它不会用_CaseLoad局部视图替换_Vacancies局部视图?

控制器操作(MainController):

代码语言:javascript
复制
    public ActionResult Index(int page = 1, string searchTerm = null)
    {
        MainIndexViewModel model = new MainIndexViewModel()
        // Populate Model

        return View(model);

    }

主索引视图:

代码语言:javascript
复制
@model Project.WebUI.Models.MainIndexViewModel

@{
  ViewBag.Title = "Index";
  Layout = "~/Views/Shared/_Layout.cshtml";
}

<div id="MainIndex">
        <div id="Menu">

            @Ajax.ActionLink("CaseLoad", "_CaseLoad", "Main", null, new AjaxOptions() { UpdateTargetId = "Main", InsertionMode = InsertionMode.Replace, HttpMethod = "GET",
                LoadingElementId = "busycycle" }) |

            @Ajax.ActionLink("Vacancies", "_Vacancies", "Main", null, new AjaxOptions() { UpdateTargetId = "Main", InsertionMode = InsertionMode.Replace, HttpMethod = "GET",
                LoadingElementId = "busycycle" })

        </div><hr/>


        <div id="busycycle" style="display:none;"><img src="~/Content/images/preloader-w8-cycle-black.gif" /></div>
        <div id="Main">
            @Html.Partial("_CaseLoad")
        </div>

    </div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 21:38:23

您对@Ajax.ActionLink的调用是错误的,您正在执行以下操作:

代码语言:javascript
复制
@Ajax.ActionLink("CaseLoad", "_CaseLoad", "Main", null, new AjaxOptions() { UpdateTargetId = "Main", InsertionMode = InsertionMode.Replace, HttpMethod = "GET",
            LoadingElementId = "busycycle" })

这意味着您的链接文本是"CaseLoad",而"MainController“中要调用的操作是"_CaseLoad"?"_CaseLoad“不是你的局部视图的名字吗?

要解决此问题,您必须在MainController中创建CaseLoad和一个空缺操作,使这两个方法都返回PartialView("_CaseLoad.cshtml",模型)或PartialView("_Vacancies.cshtml,模型),如下所示:

代码语言:javascript
复制
public ActionResult CaseLoad(int page = 1, string searchTerm = null)
{
    MainIndexViewModel model = new MainIndexViewModel()
    // Poopulate Model

    return PartialView("_CaseLoad.cshtml", model);
}

我只是去掉了所有的实现细节,只是为了让你对如何解决这个问题有所了解。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16083459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档