我有一个 mvc 应用程序,我想知道如何从 API 控制器而不是 mvc 控制器更改视图(cshtml 页面)。这是因为 cshtml 和应用程序通过 ajax 服务进行通信。
请尽快回复我。谢谢
我有一个 mvc 应用程序,我想知道如何从 API 控制器而不是 mvc 控制器更改视图(cshtml 页面)。这是因为 cshtml 和应用程序通过 ajax 服务进行通信。
请尽快回复我。谢谢
您不能从 api 控制器更改 cshtml,它们只返回一个序列化对象。你需要在你的 ajax 脚本中解析这个对象并使用 jquery/javascript 来改变你的 cshtml
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;