Asp.net mvc 将模型对象传递到视图时出错
关于这个问题,我提到了几个问题,但我认为我的问题没有什么不同 我已经创建了一个登录页面,成功登录后,它应该会打开主控制器的索引视图。由于我的索引视图需要模型绑定表数据,所以我需要在登录按钮操作中传递模型对象和视图。我希望你能理解这个场景 这是我的登录控制器:Asp.net mvc 将模型对象传递到视图时出错,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,关于这个问题,我提到了几个问题,但我认为我的问题没有什么不同 我已经创建了一个登录页面,成功登录后,它应该会打开主控制器的索引视图。由于我的索引视图需要模型绑定表数据,所以我需要在登录按钮操作中传递模型对象和视图。我希望你能理解这个场景 这是我的登录控制器: public ActionResult Login() //Get Method for Login { return View("Login"); } [HttpPost] // Post Met
public ActionResult Login() //Get Method for Login
{
return View("Login");
}
[HttpPost] // Post Method on Login
public ActionResult Defaults(string username, string password)
{
FloorFactor ff = new FloorFactor(); // tried to create model object to pass in view
try
{
Login_Details login_detail = db.Login_Details.Single(x => (x.UserName == username) && (x.Password == password));
if (login_detail != null)
{
return View("../Home/Index",ff ); // need to get view Index of home controller.
}
}
catch { }
return View("Login");
}
Index.cshtml的必需部分
@model IEnumerable<Pricing_Tool_Test.FloorFactor>
@{
ViewBag.Title = "Index";
}
只需在不使用IEnumerable的情况下尝试类名“FloorFactor”。因为您没有发送列表。
我想这会解决你的问题
@model Pricing_Tool_Test.FloorFactor
@{
ViewBag.Title = "Index";
}
您已经了解了以下问题:
视图
需要IEnumerable
,并且您正在传递一个FloorFactor
的对象
您可以相应地填充模型并将其传递给视图,如-
List<FloorFactor> model = new List<FloorFactor>();
model.Add(ff);
编辑-编辑之后,我建议您重新考虑您的设计方法
在高层,如果登录成功,则重定向到控制器的
Get
操作,而不是POST
。您不需要将IEnumerable
实例传递给视图。现在,视图中的控件应该与表单中的FloorFactor
属性绑定。当用户填写这些详细信息时,然后在表单提交时使用POST
调用Create
操作,并将更改保存到数据库中。或者必须返回IEnumerable对象
或者在视图中,您需要将其放在没有IEnumerable的位置
@model Pricing_Tool_Test.FloorFactor
@{
ViewBag.Title = "Index";
}
在您看来,只需使用@model Pricing\u Tool\u Test.FloorFactor,因为您正在传递单个元素,所以不需要IEnumerableon成功登录它会在Index.cshtml上加载内容表,所以它不是单个元素,所以它需要IEnumerabley。您的代码只是传递一个名为“ff”的空对象,可能是@CodeCaster的重复项请参见编辑。n我认为没有必要对这篇文章投否决票,因为在我的搜索结果中找不到你提到的问题。链接问题的标题有很大不同。当你看不到任何搜索努力或不明确时,使用Downvote。打字速度太快,请击败我,得到几乎相同的答案。:)@哈奇诺-安静是个巧合。事实上,我的发帖速度有点慢谢谢你的回答。这对我有点帮助。通过使用您的代码,它仍然会给我错误,但如果我编写List model=new List();返回视图(“link”,model)
如果我添加这两行,它将为我提供带有空结果的索引视图。当我传递空的模型对象时。那么,知道如何用现有数据传递实际模型吗?@harshilsah-这是因为您正在将空对象传递给列表-FloorFactor ff=new FloorFactor()代码>。ff对象刚刚初始化,其中没有任何值。只需使用适当的值初始化对象的属性(如果有许多类似ff的对象,请对所有对象执行相同的操作)并添加到列表中。理想情况下,您应该从业务层获取填充的模型。
return View("../Home/Index",new List<FloorFactor> { model} );
@model Pricing_Tool_Test.FloorFactor
@model Pricing_Tool_Test.FloorFactor
@{
ViewBag.Title = "Index";
}