您好,我在呈现页面时出现以下错误。将模型传递给视图页后,获取错误,但从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>
我已经寻找最相关的“送从后端,但在视图中使用列表答案单个对象的模型“或”发送一个模型并在查看页面使用不同的模型“。 但对我而言,我使用模型发送单个对象并在视图中使用相同的模型。仍然得到错误。
根据你所显示的,除了某种形式的腐败之外,我能想到的唯一一件事会导致这个问题,那就是你的代码实际上使用的视图不是你展示的那个。 – jmcilhinney
也许尝试搜索'WarrantyRewards.Controllers.AdminCustSignUpModel'的用法并在它们上放置断点以查看它们是否被击中。 – jmcilhinney
仔细观察,我发现您的操作具有“AdminCustSignUpModel”类型的参数。那来自哪里?此操作是否使用该模型处理来自视图的帖子?如果是这样,它似乎可能会返回相同的观点,因此这种差异。如果你想返回一个与你的动作名称不匹配的视图,那么你需要在调用'View'时指定它的名字。 – jmcilhinney