0

我有一个 mvc 应用程序,我想知道如何从 API 控制器而不是 mvc 控制器更改视图(cshtml 页面)。这是因为 cshtml 和应用程序通过 ajax 服务进行通信。

请尽快回复我。谢谢

4

2 回答 2

1

您不能从 api 控制器更改 cshtml,它们只返回一个序列化对象。你需要在你的 ajax 脚本中解析这个对象并使用 jquery/javascript 来改变你的 cshtml

于 2015-07-08T14:47:07.650 回答
1

API 控制器旨在用于 Web 服务之类的东西,或者用于为 Angular JS 等前端渲染框架编写服务器端后端。

你可以做你想做的事,但你必须从你的 API 控制器返回 JSON 之类的东西,并用 Angular JS 对其进行转换。

其次,您可以在普通的 MVC 控制器中进行 AJAX,只需按照这样的指南进行操作,Guide

我通常将我的 MVC 应用程序构建为 Hybrids。我将传统 MVC 与 Angular JS 混合在一起,以便我的所有页面都通过正常 url 上的正常 get 请求加载,但使用 angular 进行 ajax 回发,这样我就不必担心 SEO 或使用 prerender.io 之类的东西......

我所有的表单,比如联系我们、登录等等,都被角度控制器所吸引,并且都进行 ajax 回发,速度也非常快。

更新评论:

如果您想根据 web api 结果的响应以角度重定向.. 您可以执行以下操作,

public object TheMethod(...)
{
    var theJson = new 
    {
        type = "Redirect",
        data = new 
        {
           url = "/submitted",
           form = new 
           {
               firstName = "Bob",
               lastName = "Smith"
           }            
        }
    };
    return theJson;
}

然后在您的角度响应中,检查类型,如果是重定向,请执行 window.location = result.data.url;

于 2015-07-08T15:06:16.960 回答