Asp.net mvc ASP.NET MVC:如何将ActionResult转换为字符串?
我希望使用现有的action方法,将其返回值呈现为字符串,并将其作为JSON发送,以响应AJAX请求 为此,我需要将ActionResult呈现为字符串。我该怎么做 相反,我们可以使用this.Content()将字符串转换为ActionResult 更新 现有的和第一个action方法返回一个ActionResult类型,但它实际上返回一个ViewResult来响应HTTP post请求。我有一个第二个操作方法(我的facade),它返回一个响应AJAX请求的JsonResult。我希望这个第二个动作方法使用第一个动作方法来呈现HTML 在总体方案中,我希望ActionResult(由action方法生成)不仅可以通过标准HTTP post检索,还可以通过facade action方法(第二种action方法)通过AJAX请求检索。这样,作为开发人员,我可以选择使用HTTPPOST或AJAX来检索页面的呈现Asp.net mvc ASP.NET MVC:如何将ActionResult转换为字符串?,asp.net-mvc,string,json,actionresult,actionmethod,Asp.net Mvc,String,Json,Actionresult,Actionmethod,我希望使用现有的action方法,将其返回值呈现为字符串,并将其作为JSON发送,以响应AJAX请求 为此,我需要将ActionResult呈现为字符串。我该怎么做 相反,我们可以使用this.Content()将字符串转换为ActionResult 更新 现有的和第一个action方法返回一个ActionResult类型,但它实际上返回一个ViewResult来响应HTTP post请求。我有一个第二个操作方法(我的facade),它返回一个响应AJAX请求的JsonResult。我希望这个第
抱歉,我尝试使此更新尽可能短。谢谢。您是在找下面的4号还是6号 文本摘自: 了解行动结果 控制器操作返回称为操作结果的内容。动作结果是控制器动作响应浏览器请求返回的结果 ASP.NET MVC框架支持多种类型的操作结果,包括:
所有这些操作结果都继承自基本ActionResult类 将其作为ContentResult而不是ActionResult返回 我用的是
public ContentResult Place(string person, string seat)
{
string jsonString = null;
try
{
jsonString = AllocationLogic.PerformAllocation(person, seat);
}
catch {
jsonString = AllocationLogic.RaiseError(timeout);
}
return Content(jsonString);
}
你确定
JsonResult
不是你想要的吗?如果调用Controller
中定义的Json(object jsonObject)
方法,它将jsonObject
序列化为Json,并返回一个适当的响应(正确设置了所有头以及所有这些)。通常JSON请求需要POST,但是您也可以将其配置为允许GET。AJsonResult
可能是更好的选择。我认为您可能是对的……我可以再看一看我的代码:-)当然ContentResult
或JsonResult
是您想要的。现有的操作方法返回ActionResult,但它确实返回ViewResult。我无法为现有的操作方法返回JsonResult,但我将为将发布Json的操作方法使用JsonResult。有两种方法需要考虑。但是为什么AJAX请求需要整个页面呢?它会收到太多的信息,doctype、head、body等等。AJAX请求不是只需要一大块数据吗?您是否考虑过使用Request.IsAjaxRequest()
让一个操作处理两种情况?#6是我想要的。谢谢+1.