好了,所以現在我的主控制器類我只是各有獨立的東西返回一個視圖,如:MVC3控制器和視圖
public ActionResult Contact()
{
return View();
}
我有這個拍下來,因爲它是不是很困難!但是我想知道的是,在這個行動結果中我還能做些什麼?還有什麼可以通過這個來完成的?
好了,所以現在我的主控制器類我只是各有獨立的東西返回一個視圖,如:MVC3控制器和視圖
public ActionResult Contact()
{
return View();
}
我有這個拍下來,因爲它是不是很困難!但是我想知道的是,在這個行動結果中我還能做些什麼?還有什麼可以通過這個來完成的?
你可以返回,而不是一個視圖中的硬編碼的內容:
public ActionResult Contact()
{
return Content("Hello");
}
你可以返回JSON:
public ActionResult Contact()
{
return Json(new { Foo = "bar" }, JsonRequestBehavior.AllowGet);
}
你可以返回的javascript:
public ActionResult Contact()
{
return JavaScript("alert('Hello World');");
}
你可以直接流一個文件:
public ActionResult Contact()
{
return File(@"c:\work\foo.pdf", "application/pdf", "foo.pdf");
}
你可以返回404:
public ActionResult Contact()
{
return HttpNotFound();
}
你可以返回401:
public ActionResult Contact()
{
return new HttpUnauthorizedResult();
}
如果內置的動作導致不能滿足您的需求,你總是可以寫一個自定義一個。例如,一個返回XML:
public class XmlResult : ActionResult
{
private readonly object _data;
public XmlResult(object data)
{
if (_data == null)
{
throw new ArgumentNullException("data");
}
_data = data;
}
public override void ExecuteResult(ControllerContext context)
{
var response = context.HttpContext.Response;
response.ContentType = "text/xml";
var serializer = new XmlSerializer(_data.GetType());
serializer.Serialize(response.OutputStream, _data);
}
}
然後:
public ActionResult Contact()
{
return new XmlResult(new { Foo = "Bar" });
}
因此,大家可以看到有很多的事情可以做。問題是:你想做什麼?
通常在Controller的Action中,您將從數據存儲中獲取數據並將其返回給視圖。如果你問的是什麼類型的ActionResults,你可以找到它們的列表here。
謝謝!超級有用。儘管如此,爲了回答這個問題,我不知道我想做什麼!我正在做一些最後的項目,以便我可以瞭解有關MVC3和相關事情的所有內容,並且我想要包含更多內容,而不僅僅是直觀的視圖。 – 2012-07-16 17:38:00
你可以添加partialview嗎? JavaScript調用非常方便。 :) – Silvermind 2012-07-16 18:10:22