webForumDet fria alternativet

mvc update action metod + null

3 svar · 1 573 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

Hej,
Jag uppdaterar en meny mot databasen i en update actionmethod.
Problemet är att vissa fält kan vara tomma (sträng-fält) och då mappar inte MVC den strängen och blir således null.
Exempel:

 public ActionResult Update(MenuEditViewModel menu)
{
    if (ModelState.IsValid)
    {
        var savedMenu = _menuService.GetMenu(menu.ID);
        savedMenu.Url = menu.Url;
        ...

Min databas tillåter för tillfället inte null i den kolumnen och det gör att sidan kraschar.
Så:
Måste jag ändra databasen till att tillåta null eller finns det nån variant att få Url till att bli en tom sträng utan att sätta en if-tagg så här:

...
if(!string.IsNullOrEmpty(menu.Url))
     savedMenu.Url = menu.Url;
else
     savedMenu.Url = "";
...

???

SPiNMedlem sedan mars 20007 896 inlägg
#2

Du kan ju korta ner if-satsen;

var savedMenu = _menuService.GetMenu(menu.ID);
savedMenu.Url = menu.Url == null ? "" : menu.Url;
doggelitoMedlem sedan juni 20003 076 inlägg
#3

Jag valde att ändra i databasen istället så att kolumnen tillåts null-värde. :)

onkelborgMedlem sedan juli 2003555 inlägg
#4

Tips till nästa gång: Titta på postsharp. Skapa ett eget attribut som ser till att om du sätter/begär en egenskap så ersätts null med en tom sträng. Ta da :)

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)