2015-02-04 6 views
1

нормально ... Я СтумпедMVC объектная модель теряет значение

public ActionResult addSite(SiteViewModel aModel) 
    { 
     if (ModelState.IsValid) 
     { 
      siteID = Guid.NewGuid().ToString(); 
      aModel.siteId = siteID; 

      AddSite2Azure(); 

      return RedirectToAction("manageProfile", "User"); 
     } 
     else { return View(aModel); } 
    } 


    private void AddSite2Azure() 
    { 
     EmPmSiteEntity aSite = aEnty.AssetRegistry.CreateSite(new EmPmSiteEntity() 
     { 
      UserId = aUserId, 
      Id = aModel.siteId, 
      Name = aModel.siteName, 
      ZipCode = aModel.siteZip, 
     }); 
    } 

Когда отладка aModel.siteID имеет Guid в конце моего ActionResult. Но когда мы переходим к следующему методу, значение aModel.siteID равно «null»

+0

Скорее всего, вы устанавливаете неправильный 'aModel'. Вы хотите вместо этого 'this.aModel'? Или вы намерены передать 'aModel'from' addSite' в 'AddSite2Azure'? –

+0

SiteViewModel aModel = новый SiteViewModel(); находится в верхней части моего кода ... aModel не повторно инициализируется, и все остальные значения aModel (name & zip) сохраняются. Это код контроллера для SiteViewModel, я не должен пропускать модель внутри контроллера – mboyd4546

+0

Наверх вашего кода где? Если вы имеете в виду переменную-член, то aModel addSite скроет ее. –

ответ

1

Похоже, что у вас есть две области для aModel - одна на уровне класса (не показана в вашем коде) и одна на уровень метода (передан как параметр addSite(...)).

Вы устанавливаете значение переменной уровня метода в addSite(). Чтобы использовать это значение в AddSite2Azure(), либо пройти уровень метода aModel до AddSite2Azure(), либо установить класс aModel в addSite() с помощью this.aModel.