2010-03-03 31 views
35

Tôi đã gửi biểu mẫu qua jquery, nhưng tôi cần ActionResult để trả về true hoặc false.return bool từ asp.net mvc actionresult

đây là đoạn code mà đối với phương pháp điều khiển:

[HttpPost] 
    public ActionResult SetSchedule(FormCollection collection) 
    { 
     try 
     { 
      // TODO: Add update logic here 

      return true; //cannot convert bool to actionresult 
     } 
     catch 
     { 
      return false; //cannot convert bool to actionresult 
     } 
    } 

Làm thế nào tôi sẽ thiết kế gọi JQuery của tôi để vượt qua mà dữ liệu mẫu và cũng kiểm tra nếu giá trị trả về là đúng hay sai. Làm cách nào để chỉnh sửa mã ở trên để trả về đúng hoặc sai?

+7

I LOVE đơn giản, luộc xuống Ví dụ, mà expunges tất cả mã không liên quan. Muốn 95% người khác, kể cả những người viết sách, cũng sẽ làm như vậy. –

+0

@Eclipsoft Có lẽ ai đó có ảnh hưởng có thể thảo luận ý tưởng về meta nếu nó chưa được đề cập đến. – MrBoJangles

Trả lời

64

Bạn có thể trả về kết quả json dưới dạng một bool hoặc với thuộc tính bool. Một cái gì đó như thế này:

[HttpPost] 
public ActionResult SetSchedule(FormCollection collection) 
{ 
    try 
    { 
     // TODO: Add update logic here 

     return Json(true); 
    } 
    catch 
    { 
     return Json(false); 
    } 
} 
+3

+1, * tệp trong bộ nhớ của mình để sử dụng trong tương lai * –

+2

+1, bạn là một anh hùng – Eddie

4

IMHO bạn nên sử dụng JsonResult thay vì ActionResult (để duy trì mã).

Để xử lý các phản ứng trong Jquery phụ:

$.getJSON(
'/MyDear/Action', 
{ 
    MyFormParam: $('MyParamSelector').val(), 
    AnotherFormParam: $('AnotherParamSelector').val(), 
}, 
function(data) { 
    if (data) { 
    // Do this please... 
    } 
}); 

Hy vọng nó giúp:)

+1

Làm thế nào để sử dụng kết quả Json thay vì ActionResult làm cho mã dễ bảo trì hơn? AFAIK loại kết quả bạn sử dụng sẽ chỉ ảnh hưởng đến loại đầu ra mà trình duyệt mong đợi. – JoseMarmolejos

+1

@JoseMarmolejos Hi Jose, tôi khuyên bạn nên trả lại loại có nguồn gốc nhiều nhất có thể trong các phương pháp của bạn, bởi vì nó cho phép bạn sử dụng các phương thức và thuộc tính có nguồn gốc của kiểu trả về mà không cần phải kiểm tra khi cần. cùng áp dụng cho các sự kiện. Phía bên kia do quy tắc hiệp phương sai, cả hai tùy chọn đều giống nhau đối với các đại biểu sử dụng;) +1 – SDReyes

2

Làm thế nào về điều này:

[HttpPost] 
public bool SetSchedule(FormCollection collection) 
{ 
    try 
    { 
     // TODO: Add update logic here 

     return true; 
    } 
    catch 
    { 
     return false; 
    } 
} 
+2

Điều này trả về chuỗi "Đúng", vì vậy, không thực hiện được kiểm tra Boolean, Ví dụ: if (data === true), không giống như cách tiếp cận JSON. – StuartQ

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