2011-09-14 31 views
13

Tôi có một hành động có khả năng được gọi thông qua một liên kết bình thường, trong trường hợp này tôi sẽ trả về một View(), hoặc nó cũng có thể được gọi qua AJAX hoặc RenderAction (ví dụ như một hành động con). d trả về một PartialView().Làm cách nào để biết hành động của tôi có đang được gọi bởi RenderAction không?

Phân loại phần AJAX thật dễ dàng - nhưng làm cách nào để kiểm tra xem hành động của tôi có được hiển thị dưới dạng Hành động con không?

Lý tưởng nhất, tôi muốn để có thể viết mã như thế này:

if (Request.IsAjaxRequest() || Request.IsChildAction()) 
    return PartialView(); 

return View(); 

Rõ ràng là Request.IsChildAction() không tồn tại - là có một cái gì đó simlilar, hay tôi chỉ cần tạo một ChildAction đặc biệt luôn trả về một phần của một phần?

Trả lời

33

Bạn gần như có:

public ActionResult Foo() 
{ 
    if (Request.IsAjaxRequest() || ControllerContext.IsChildAction) 
    { 
     return PartialView(); 
    } 
    return View(); 
} 
+0

Cảm ơn - Tôi đã bắt đầu nghĩ không có cách nào để nói – StanK

Các vấn đề liên quan