我需要将对象数据从控制器传递到视图。应该发生的是视图创建一个对象,并用从视图传递给它的数据填充对象。事实上,对象被填充了空值。我曾尝试将@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>
}
最后,由于它太长了,无法包含在这里,因此有一个用于引用的用户类的pastebin链接:https://pastebin.com/ayZjxRHh.
修复视图
删除此
@{
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>
}