asp.net mvc и нулл параметры

habramen
Дата: 12.05.2010 15:54:32
немного сумбурно

допустим есть в контроллере метод, метод принимает параметр. если вызвать метод без параметра, то приложение валится, вылезает желтое окно с кучей ошибок-некрасиво.

т.е. надо вызывать так site/home/action/20 а вызвали так site/home/action

если объявить переменную типа нуллебле (int? id) то спасает от ошибок падения, но тогда появляются проблемы при передачи этого параметра в функции. или вызывать так foo (id ?? 0) или объявлять функции тоже с нулебл папаметрами -void foo (int? id)

подскажите как разрулить такую ситуацию, подозреваю что есть более красивое решение или проблема надуманная?
VitaliyBoris
Дата: 12.05.2010 18:46:15
habramen,

Может Вам подойдет вариант с роутами, т.е. в случае site/home/action id будет по умолчанию например 1 а в случае site/home/action/20 id - 20.
habramen
Дата: 12.05.2010 20:08:14
VitaliyBoris,

дело не в роутах. я рассматриваю ситуацию если метод контроллера будет вызван без параметров, может даже и без роута
ну мало ли что может произойти. и я хочу както обработать эту ситуацию

ведь не обязательно 1 роут , может быть например так site/home/action/20?someparam=10
mvchelp
Дата: 12.05.2010 20:31:59
Есть три варианта обойти желтую страницу

1) ViewName(int? id) - и далее обрабатывать id.HasValue, id.Value
2) ViewName([DefaultValue(0)]int id) - установка стандартного значение, в 3.5
3) ViewName(int id = 0) конструкция 4-ого фреймворка
habramen
Дата: 13.05.2010 00:02:34
mvchelp,

насчет п.2 хочу уточнить, у меня проект вроде 3.5 фреймворк (в свойствах проекта видно) но нету параметра DefaultValue, есть только DefaultSettingValue
habramen
Дата: 13.05.2010 00:06:51
все разобрался