2017-10-08 37 views
-2

您好,我在呈现页面时出现以下错误。将模型传递给视图页后,获取错误,但从C#后端发送类似类型的模型

传递到词典中的模型产品类型“XXX.Models.MWRCustomerModel”,但这需要字典类型的模型项“XXX.Controllers.AdminCustSignUpModel”。

我的C#代码是

public ActionResult signUpTravelAdvantageVip(AdminCustSignUpModel AdminCustSignModel) 
    { 
     int number; 
     string RefferedId = ""; 
     string sponsorUserName = AdminCustSignModel.SpoName; 

     var fullCountryName = db.MWRAutoStates.Where(x => x.Country == AdminCustSignModel.CountryShortCode).FirstOrDefault(); 
     string incomingCountry = fullCountryName.FullCountryName.ToString(); 


     ViewBag.Promoter = sponsorUserName;   
     var sponsor = db.GetUserInfo(sponsorUserName).SingleOrDefault(); 
     ViewBag.SponsorFirstName = sponsor.FName; 
     ViewBag.SponsorLastName = sponsor.LName; 

     MWRCustomerModel model = new MWRCustomerModel(); 
     if (AdminCustSignModel.CountrySC == "US") 
     { 
      model.Sponsor = sponsorUserName; 
     } 
     else { 
      model.Sponsor = sponsorUserName; 
      model.EuroCustomer = true; 
     } 
     model.BillingCountry = AdminCustSignModel.CountrySC; 

     return View(model); 
    } 

而我的观点是

@model WarrantyRewards.Models.MWRCustomerModel 

    @{ 
     ViewBag.Title = "signUpTraAdv"; 
    } 
    <h2>signUpTraAdv</h2> 

我已经寻找最相关的“送从后端,但在视图中使用列表答案单个对象的模型“或”发送一个模型并在查看页面使用不同的模型“。 但对我而言,我使用模型发送单个对象并在视图中使用相同的模型。仍然得到错误。

+0

根据你所显示的,除了某种形式的腐败之外,我能想到的唯一一件事会导致这个问题,那就是你的代码实际上使用的视图不是你展示的那个。 – jmcilhinney

+0

也许尝试搜索'WarrantyRewards.Controllers.AdminCustSignUpModel'的用法并在它们上放置断点以查看它们是否被击中。 – jmcilhinney

+0

仔细观察,我发现您的操作具有“AdminCustSignUpModel”类型的参数。那来自哪里?此操作是否使用该模型处理来自视图的帖子?如果是这样,它似乎可能会返回相同的观点,因此这种差异。如果你想返回一个与你的动作名称不匹配的视图,那么你需要在调用'View'时指定它的名字。 – jmcilhinney

回答

-2

经过大量的接线和撕裂,我发现这个问题。我用例子来解释。

我得到一个操作方法称为testActionMethode_1哪个视图文件是“testActionMethode_1.cshtml”,它与“test_1”模型绑定。

当我提交值形式testActionMethode_1.cshtml视图,模型接收[HTTPPost]“testActionMethode_1”的动作方法。

现在在这篇文章中我采取了一些行动方法,并基于我重定向到另一个称为testActionMethode_5的Actin方法的值(仍然发送相同的模型test_1)。

在新的Actin方法testActionMethode_5中,我正在使用test_1模型属性附带的值。

问题发生在此处,我使用另一个模型“test_2”并发送此模型以查看“testActionMethode_5.cshtml”。但是帖子还没有完成,我们通过在视图文件“testActionMethode_1.cshtml”中按下提交按钮来启动

所以,当我们通过绑定模型“系统显示错误,并期待模型“test_1”

+0

使用组成动作名称(_1等)而不是你的问题中提到的方法名称使得它们很难联系起来。 – mjwills

相关问题