c#-ASP.NET MVC 4-以HTML,JSON或XML进行响应的正确方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-ASP.NET MVC 4-以HTML,JSON或XML进行响应的正确方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1222字,纯文字阅读大概需要2分钟。
内容图文
![c#-ASP.NET MVC 4-以HTML,JSON或XML进行响应的正确方法](/upload/InfoBanner/zyjiaocheng/677/9cbabf64eb7a471e89077f021ee8c876.jpg)
使我的Index()方法根据传入的accept / content-type标头返回内容的正确方法是什么?
我目前正在尝试重构一个具有Index()方法和JsonData()方法的应用程序.浏览器提取此“索引”页面,然后通过Ajax请求/ jsondata URL.我想同时放在Index()下,并根据传入的请求更改响应类型.在MVC 4下执行此操作的正确方法是什么?
注意:我们没有使用Web API.
解决方法:
您在这里有几种选择.
首先-用动词来区分您的请求,并有一个约定,例如所有GET接收html,而所有POST接收json.控制器将如下所示:
[HttpGet]
[ActionName("Index")]
public ActionResult IndexGet()
{
return View();
}
[HttpPost]
[ActionName("Index")]
public ActionResult IndexPost()
{
return Json();
}
当然,使用正确的方法提出请求是客户端的事情.更新-动词仅在这里还不够-要保留一个动作名称,您还应该使用ActionName属性.感谢Joe Enos指出这一点.
第二-引入参数.假设默认情况下您正在发送html,但是如果ajax调用会附加一个参数isJson-给它json响应:
public ActionResult Index(bool? isJson)
{
if (isJson.HasValue && isJson.Value)
{
return Json();
}
return View();
}
第三-通过背后的机制区分请求.在您的情况下,似乎所有的ajax调用(只有它们)都应由json服务.然后,您可以使用Request.IsAjaxRequest()方法:
public ActionResult Index()
{
if (Request.IsAjaxRequest())
{
return Json();
}
return View();
}
当然可以组合使用这些方法-例如,仅通过ajax将json响应发送给POST请求.
内容总结
以上是互联网集市为您收集整理的c#-ASP.NET MVC 4-以HTML,JSON或XML进行响应的正确方法全部内容,希望文章能够帮你解决c#-ASP.NET MVC 4-以HTML,JSON或XML进行响应的正确方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。