0
我有以下自定義的ActionResult空字符串。它正常工作,如果我 「強制」 的ContentType,但是默認的行爲似乎是檢索一個空字符串作爲將contentType自定義的ActionResult始終返回「的ContentType」
C#版本
public ActionResult Restful(Web.Mvc.Controller controller)
{
// Test code
var contentType = controller.Request.ContentType;
// Above always returns ""
switch (ResultType(controller)) {
case RestfulResultType.Html:
ViewResult result = new ViewResult();
return result;
case RestfulResultType.Json:
JsonResult result = new JsonResult();
return result;
case RestfulResultType.JsonP:
JsonPResult result = new JsonPResult();
return result;
case RestfulResultType.Xml:
return new XmlResult(null);
default:
ViewResult result = new ViewResult();
return result;
}
}
VB.NET版本
<Extension()>
Public Function Restful(controller As Web.Mvc.Controller) As ActionResult
''# Test code
Dim contentType = controller.Request.ContentType
''# Above always returns ""
Select Case ResultType(controller)
Case RestfulResultType.Html
Dim result As New ViewResult()
Return result
Case RestfulResultType.Json
Dim result As New JsonResult()
Return result
Case RestfulResultType.JsonP
Dim result As New JsonPResult()
Return result
Case RestfulResultType.Xml
Return New XmlResult(Nothing)
Case Else
Dim result As New ViewResult()
Return result
End Select
End Function
爲什麼不我越來越從這個適當的contentType?
PS:如果你關心什麼ResultType
呢,在這兒呢。
Private Function ResultType(controller As Web.Mvc.Controller) As RestfulResultType
Select Case LCase(controller.HttpContext.Request.ContentType)
Case "text/html" : Return RestfulResultType.Html
Case "application/json" : Return RestfulResultType.Json
Case "text/javascript" : Return RestfulResultType.JsonP
Case "application/javascript" : Return RestfulResultType.JsonP
Case "application/x-javascript" : Return RestfulResultType.JsonP
Case "text/xml" : Return RestfulResultType.Xml
Case "application/xml" : Return RestfulResultType.Xml
Case Else : Return RestfulResultType.Html
End Select
End Function