Лучшее решение MVC для Asp.net - используйте селектор метода действия
Почему бы не упростить методы действия контроллера, удалив ненужную ветвь кода, и получить такой код, как показано здесь:
public ActionResult Index()
{
// do something when there's no id
}
[RequiresRouteValues("id")]
public ActionResult Index(int id)
{
// do something when id is present
}
Это, конечно, возможно, если вы предоставляете очень простой код для RequiresRouteValuesAttribute
селектора метода действия.Вы можете найти код в этом сообщении в блоге , который делает именно это.
По моему мнению, это наилучшее возможное решение этой проблемы, потому что:
- Этоупрощает код, удаляя ненужную ветвь
- делает код проще в обслуживании (из-за меньшей сложности)
- расширяет инфраструктуру Asp.net MVC, насколько это возможно и нужно
- сохраняет типы параметров какони должны быть без необходимости делать их обнуляемыми
- и т. д.
В любом случае.Все подробности об этой технике подробно описаны в связанном посте.