webForumDet fria alternativet

mvc update action metod + null

.NET

3 svar · 1 575 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#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 = "";
...

???

Medlem 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;
Medlem sedan juni 20003 076 inlägg
#3

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

Medlem 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 :)

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)