【问题标题】:MVC 4 load partial view dynamically on single pageMVC 4 在单个页面上动态加载部分视图
【发布时间】:2014-06-08 15:10:13
【问题描述】:

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

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

【问题讨论】:

  • 好吧,每次都动态加载每个 n,我个人希望您一次加载每个部分视图,即在页面加载和按钮单击时隐藏/显示视图。可行的办法。有它的优点。干杯

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


【解决方案1】:

您可以像 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 替换

【讨论】:

    【解决方案2】:

    MVC 中没有内置任何内容来执行此操作,因为您想做的事情发生在前端。如果你想要动态,你必须使用 javascript。

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

    我不确定您认为 javscript 的“重”是什么?使用 jQuery,你想做的事情并不需要太多。

    (更轻的 javascript 工作)您可以让 View 将所有部分视图放置在页面上,并使用一个将它们设置为 display:none 的类,然后只需 javascript 即可简单地更改类以查看您想要的部分。但是你有很多部分,那么你可以执行以下操作。

    或者让按钮对后端进行 `ajax 调用以获取您需要的部分。

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

    【讨论】:

    • 我希望在按钮链接事件上使用@html.renderPartial("../partialview url") 但需要更好的使用方式。
    • 不确定您的意思...构建视图时使用“Html.renderPartial”。链接事件在前端。请发布一些代码来澄清您的问题。
    猜你喜欢
    • 1970-01-01
    • 2013-05-11
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多