ASP. NET MVC 의 Controller 에 다양한 유형의 데 이 터 를 출력 하도록 합 니 다.
2233 단어 controller
같은 컨트롤 러 가 다른 유형의 출력 을 지원 해 야 하 는 경우 도 있 습 니 다. 예 를 들 어 사용자 의 자료 페이지 를 정상적으로 볼 때 / User / {id} 로 접근 할 수 있 습 니 다.자 바스 크 립 트 나 다른 시스템 에서 사용자 자 료 를 볼 필요 가 있 으 며, / User / {id} 이 JSon 데 이 터 를 되 돌려 주 기 를 바 랍 니 다.이러한 상황 은 사용자 정의 ActionResult 를 구축 하여 이 루어 질 수 있 습 니 다. 매개 변수 에 따라 기본 ViewResult 로 돌아 가 거나 Model 을 지정 한 형식 으로 출력 하 는 것 이 모델 의 출력 행 위 를 제어 하 는 것 입 니 다.출력 형식의 인 자 는 두 가지 방식 으로 전달 할 수 있 습 니 다. 전통 적 인 Get 또는 Post 참조: / User / {id}?rtype=json;다른 하 나 는 Http 가 요청 한 ContentType 인 자 를 통 해 형식 을 지정 할 수 있 습 니 다: request. contentType = "json".
참고 코드 첨부:
public class AutoResult : ActionResult
{
public string ViewName { get; set; }
public object Model { get; set; }
public override void ExecuteResult(ControllerContext context)
{
string type = context.HttpContext.Request["rtype"];
if (string.IsNullOrEmpty(type))
{
type = context.HttpContext.Request.ContentType;
}
if (!string.IsNullOrEmpty(type))
{
switch (type.ToLower())
{
case "json":
new NJsonResult(Model).ExecuteResult(context);
break;
case "binary":
new BinaryResult(Model).ExecuteResult(context);
break;
case "xml":
new XmlResult(Model).ExecuteResult(context);
break;
default:
context.HttpContext.Response.Output.Write(" ");
break;
}
}
else
{
context.Controller.ViewData.Model = Model;
ViewResult viewResult = new ViewResult() { ViewName = ViewName, ViewData = context.Controller.ViewData };
viewResult.ExecuteResult(context);
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Processing controlP5로 GUI 컨트롤러Processing에서 ControlP5 라이브러리를 사용하면 쉽게 GUI 컨트롤러를 만들 수 있습니다. 이번 자주 사용하는 슬라이더와 버튼에 대해 적어 둡니다. 향후 늘릴지도, 늘지 않을지도,라고 하는 곳. Pro...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.