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
的变量在您的视图中使用。