Comments 9
А зачем проверять какой-то {action}.{result}
если можно написать что-то типа:
if(Request.Headers[«x-requested-with»] == «XMLHttpRequest»)
{
Json().ExecuteResult(context);
}
else
{
View().ExecuteResult(context);
}
если можно написать что-то типа:
if(Request.Headers[«x-requested-with»] == «XMLHttpRequest»)
{
Json().ExecuteResult(context);
}
else
{
View().ExecuteResult(context);
}
на мой взгляд, для решения это задачи лучше бы подошло создание своего варианта ActionMethodSelectorAttribute, который призван выбирать необходимое действие из нескольких. определив два одинаковых по названию действия с разными параметрами, и пометив их таким атрибутом вы бы могли определить когда и какой должен вызваться
тогда у вас были бы такие например запросы:
ht_p://localhost/Blog/Comments/0.
и
ht_p://localhost/Blog/Comments/0/json или к примеру ht_p://localhost/Blog/Comments/0/?get=json
обработав в ActionMethodSelectorAttribute наличие парамера маршрута (первый случай) или параметра запроса get вы могли бы позволить выбрать нужное действие
на мой взгляд это гораздо лучше смешивания в одну кучу двух вариантов действия. я думаю, действие должно возвращаеть только один результат одного типа
тогда у вас были бы такие например запросы:
ht_p://localhost/Blog/Comments/0.
и
ht_p://localhost/Blog/Comments/0/json или к примеру ht_p://localhost/Blog/Comments/0/?get=json
обработав в ActionMethodSelectorAttribute наличие парамера маршрута (первый случай) или параметра запроса get вы могли бы позволить выбрать нужное действие
на мой взгляд это гораздо лучше смешивания в одну кучу двух вариантов действия. я думаю, действие должно возвращаеть только один результат одного типа
Мнение понятно, но я старался сделать что-то похожее на respond_to из RoR.
info.michael-simons.eu/2007/08/06/rails-respond_to-method/
Да и на мой взгляд смешивания никакого нет, т.к. возвращается один результат, одного типа ComplexResult.
info.michael-simons.eu/2007/08/06/rails-respond_to-method/
Да и на мой взгляд смешивания никакого нет, т.к. возвращается один результат, одного типа ComplexResult.
вот кстати, нашел интересное комплексное решение для вас
icanhascode.com/2009/05/simple-ror-respond_to-functionality-in-aspnet-mvc/
может, пригодится
icanhascode.com/2009/05/simple-ror-respond_to-functionality-in-aspnet-mvc/
может, пригодится
А зачем в третьем листинге в этом фрагменте:
return new ComplexResult
{
Json = () => Json(strings),
View = () => View(strings)
};
нужно использовать лямбды?
Поясните пожалуйста
return new ComplexResult
{
Json = () => Json(strings),
View = () => View(strings)
};
нужно использовать лямбды?
Поясните пожалуйста
Sign up to leave a comment.
ActionResult на все случаи жизни