【问题标题】:Return several partial views within a main view, based on actions in the partial views根据部分视图中的操作返回主视图中的多个部分视图
【发布时间】:2011-04-14 13:27:56
【问题描述】:

我有这个基于实体模型的人模型的视图。

@model TestApp.Models.Person

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

@Html.Partial("../PersonContactData/Create");

然后我的 PersonContactData 控制器返回部分视图“创建”,它有一个表单和一个提交按钮。当我按下该提交按钮时,我会从 PersonContactData 控制器对 Index 执行 redirectToAction,并且我想将视图从 Index 返回到上述页面。

我该怎么做?

我希望这一切都发生在页面不刷新的情况下。我可以使用 ajax 传递所有值,但我需要一些“容器”或其他东西来实际获取返回到基于 Person 模型的主视图的部分视图(列表、创建、编辑......来自 PersonContactData)。 换句话说,动作、它们对应的局部视图和它们的功能可以在基于另一个模型(Person)和控制器(PersonController)的页面中工作

这是一个 ajax post 函数,我用来从创建视图中获取值。这可行,但我仍然想在我的 HttpPost 创建操作中重定向到操作索引并返回索引视图,因为它应该可以工作。但是我的主视图(基于 Person 模型)不会显示它。

function ACGetList() {
        var personContactData = {
            ContactType: $('#ddlContactDataType').val(),
            Value: $('#txtContactDataValue').val()
        };
        $.ajax({
            url: '/PersonContactData/Create',
            type: 'POST',
            data: JSON.stringify(personContactData),
            dataType: 'Json',
            contentType: 'application/json; charset=utf-8',
            success: function () { },
            error: function () { }
        });
    }

【问题讨论】:

    标签: jquery asp.net-mvc ajax


    【解决方案1】:

    据我所知还可以。

    MVC 系统是一种服务器端结构或框架。 M=模型,V=视图,C=控制器。

    模型是验证、数据库等, 视图是标记、json、css、xml 等... 控制器,是php,asp,所以你可以说什么时候显示。

    据我了解您的问题,您只是在询问使用 ajax。

    ajax 的作用是请求一个页面并使用 js 将部分数据或全部数据返回到主页。 查看jQuery .ajax 函数或谷歌搜索。

    假设你的主页是:

    mysite.com 返回&lt;h1&gt;Hello World!&lt;/h1&gt;

    那么ajax页面就有 &lt;p&gt;I am ajax&lt;/p&gt;

    然后在主页上使用 js/jq 你可以告诉你想要“我是 ajax”去哪里

    【讨论】:

    • 在我的项目中,我使用 ajax 来获取部分视图“创建”(基于模型 PersonContactData),它被插入到我的主视图中(基于模型 Person)。但是如果我从局部视图中单击按钮(onclick 函数 ACGetList 现在显示在主题中),我希望我的 RedirectToAction 函数将另一个局部视图返回到主页(基于 Person 模型)
    • 确定你的 ajax 成功你可以在其中添加另一个 ajax 或使用队列功能在它之后发生,如果你在服务器端重定向它,你只是强制浏览器转到不同的位置。在你的 firefox 上下载 firebug,它将帮助你更好地理解它并正确调试你的脚本,然后你可以看到每个 ajax 请求返回的内容。
    猜你喜欢
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多