2010-03-03 3 views
35

Я отправил форму через jquery, но мне нужен ActionResult, чтобы вернуть true или false.return bool from asp.net mvc actionresult

это код, который для метода контроллера:

[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 
     } 
    } 

Как бы я проектирую мой JQuery вызов передать, что данные формы, а также проверить, если возвращаемое значение является истинным или ложным. Как изменить приведенный выше код, чтобы вернуть true или false?

+7

Я ЛЮБЛЮ простой, сводился примером, который вычеркивает все нерелевантный код. Желание 95% других людей, включая писателей, будет делать то же самое. –

+0

@ Eclipsoft Возможно, кто-то, у кого есть влияние, может обсудить идею о мета, если она не была покрыта. – MrBoJangles

ответ

64

Вы можете вернуть результат json в форме bool или с атрибутом bool. Что-то вроде этого:

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

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

+1, * файлы, которые в его памяти для использования в будущем * –

+2

+1, вы герой – Eddie

4

ИМХО вы должны использовать JsonResult вместо ActionResult (для кода ремонтопригодности).

Чтобы обработать ответ Jquery стороны:

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

Надеется, что это помогает:)

+1

Как использование результата Json вместо ActionResult делает код более удобным для обслуживания? AFAIK тип используемого результата влияет только на тип вывода, который ожидает браузер. – JoseMarmolejos

+1

@JoseMarmolejos Привет, Jose, я рекомендую вам вернуть наиболее производный тип, который вы можете использовать в своих методах, поскольку он позволяет вам использовать полученные методы и свойства возвращаемого типа без отложенного броска, когда это необходимо. то же самое относится к событиям. С другой стороны из-за правила ковариации оба варианта одинаковы для использования делегатами;) +1 – SDReyes

2

Как об этом:

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

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

Это возвращает строку «True», поэтому не выполняется логическая проверка, например. if (data === true), в отличие от подхода JSON. – StuartQ