MVC 4在单页上动态加载局部视图

时间:2014-06-08 15:10:13

标签: asp.net-mvc asp.net-mvc-4

我有一个MVC 4应用程序,它有一个单独的主视图。我有三个链接按钮,并希望根据按钮单击动态加载三种不同的表单。我正在使用mvc部分视图。所以,如果我点击按钮-1,它应该加载partialView-1,并且还应该从相应的文本框发送value-1到partialView-1。

我正在寻找内置的mvc方法,而不是做大量的javascript工作。

home page to load partial views

2 个答案:

答案 0 :(得分:3)

您可以像this一样执行此操作。

A. 在控制器内部使用不同的方法返回PartialViewResult

[HttpGet]
    public PartialViewResult GetPartialView1(int value)
    {    
        return PartialView("_PartialView1"); //This view should exist in appropriate views folder.
    }

B。左侧的按钮应为@Ajax.ActionLink

@Ajax.ActionLink(
    "Button1",
    "GetPartialView1",
    new { 
        value1 = 1},
    new AjaxOptions
    {
        HttpMethod = "GET",
        InsertionMode = InsertionMode.Replace,
        UpdateTargetId = "righthandsidebox"
    }
    )

C。 UpdateTargetId = "righthandsidebox"应该是右侧div的id。 righthandsidebox的内容将由PartialView

替换

答案 1 :(得分:-1)

MVC没有内置任何功能,因为你想要做的事情发生在前端。如果你想要动态,你必须使用javascript。

如果你想避免使用javascript,那么它就不会是动态的。您可以将每个按钮和值包装在一个表单中,并将其值提交给后端,然后通过您传递的内容,然后让您的视图呈现您想要的部分。但是这并不像想要的那样充满活力。

我不确定你认为是什么"沉重的"谈到javscript?使用jQuery你想要的东西并不需要花费太多。

(更轻松的javascript工作)你可以让你的View在页面上放置所有部分视图,其中一个类将它们设置为display:none然后只需javascript就可以简单地更改类以查看部分内容喜欢。但是你有很多偏见,那么你可以做到以下几点。

或者让按钮对后端进行“ajax调用”,获取所需的部分内容。

底线是......如果你想要动态,你需要使用javascript。