Du kan ju korta ner if-satsen;
var savedMenu = _menuService.GetMenu(menu.ID);
savedMenu.Url = menu.Url == null ? "" : menu.Url;
3 svar · 1 575 visningar · startad av doggelito
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 = "";
...
???
Du kan ju korta ner if-satsen;
var savedMenu = _menuService.GetMenu(menu.ID);
savedMenu.Url = menu.Url == null ? "" : menu.Url;
Jag valde att ändra i databasen istället så att kolumnen tillåts null-värde. :)
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 :)