C# MVC:数据未从控制器传递到视图
我需要将对象数据从控制器传递到视图。视图应该创建一个对象,并用从视图传递给它的数据填充该对象。实际上,对象会填充空值。我已尝试将C# MVC:数据未从控制器传递到视图,c#,asp.net-mvc,C#,Asp.net Mvc,我需要将对象数据从控制器传递到视图。视图应该创建一个对象,并用从视图传递给它的数据填充该对象。实际上,对象会填充空值。我已尝试将@model语句更改为@model web2.Controllers.AboutUsController,但这导致了一个错误。应用程序被设置为期望用户模型。我不确定问题出在哪里,因为我在应用程序中的其他地方将数据从控制器传递到视图,这些视图的设置与此完全相同,我对这些都没有问题。 谢谢你的帮助,我真的很感激 以下是控制器的相关部分: using System; usin
@model
语句更改为@model web2.Controllers.AboutUsController
,但这导致了一个错误。应用程序被设置为期望用户模型。我不确定问题出在哪里,因为我在应用程序中的其他地方将数据从控制器传递到视图,这些视图的设置与此完全相同,我对这些都没有问题。
谢谢你的帮助,我真的很感激
以下是控制器的相关部分:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace web2.Controllers
{
public class AboutUsController : Controller
{
// GET: AboutUs
public ActionResult Index()
{
// create user object
Models.User u = new Models.User();
u.Email = "esmith@myemail.com";
u.FirstName = "Ethan";
u.LastName = "Smith";
return View(u);
}
}
}
以下是整个视图:
@model web2.Models.User
<style>
.user-image-container {
height: unset;
}
</style>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<img src="/wapp2-malloye/Content/Images/Ethan Pic.jpg" alt="An awesome picture of Ethan">
@{
web2.Models.User u = new web2.Models.User();
}
<ul>
<li>First Name: @u.FirstName </li>
<li>Last Name: @u.LastName </li>
<li>Email Address: @u.Email </li>
</ul>
@using (Html.BeginForm(FormMethod.Post))
{
<div class="section">
<button type="submit" value="more" name="btnMore" id="More"><i class="far fa-info-circle"?></i></button>
<button type="submit" value="close" name="btnClose" id="Close"><i class="fa fa-times"></i></button>
</div>
}
@model web2.Models.User
.用户图像容器{
高度:未设置;
}
@{
ViewBag.Title=“Index”;
}
指数
@{
web2.Models.User u=新的web2.Models.User();
}
- 名字:@u.FirstName
- 姓氏:@u.LastName
- 电子邮件地址:@u.Email
@使用(Html.BeginForm(FormMethod.Post))
{
}
最后,由于此处包含的内容太长,因此引用的用户类有一个pastebin链接:。修复视图
去掉这个
@{
web2.Models.User u = new web2.Models.User();
}
和固定形式
@using (Html.BeginForm(FormMethod.Post))
{
<ul>
<li>First Name: @Model.FirstName </li>
<li>Last Name: @Model.LastName </li>
<li>Email Address: @Model.Email </li>
</ul>
<div class="section">
<button type="submit" value="more" name="btnMore" id="More"><i class="far fa-info-circle"?></i></button>
<button type="submit" value="close" name="btnClose" id="Close"><i class="fa fa-times"></i></button>
</div>
}
@使用(Html.BeginForm(FormMethod.Post))
{
- 名字:@Model.FirstName
- 姓氏:@Model.LastName
- 电子邮件地址:@Model.Email
}
在您的视图中,使用@Model
而不是@u
——例如@Model.FirstName
。没有web2.Models.User u=new web2.Models.User()代码>在视图中。控制器通过调用反序列化方法解析响应。您的视图可以在反序列化完成后加载。正如@pfx所暗示的,您没有正确访问模型。行web2.Models.User u=newweb2.Models.User()
只需将u
设置为模型类的全新实例,而不初始化任何数据。ASP.NET已经为您连接了模型,它可以通过名为model
的变量在您的视图中使用。