【发布时间】:2016-08-28 13:46:27
【问题描述】:
可能是一个重复的问题和一个很长的问题。但我没有得到我的解决方案,而且问题很容易专家。
在我的HomeController 中有三个 ActionResult(),分别命名为 Index()、Customer() 和 Item()。
模型类:
namespace Customer.Models
{
public class CustomerInfo
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
public string ItemName { get; set; }
}
}
我说的是我的Customer()。在Customer() 中,列表将返回到CustomerView 页面。
家庭控制器:
List<CustomerInfo> customers = new List<CustomerInfo>();
public ActionResult Customer()
{
customers.Add(new CustomerInfo { CustomerName= "Nafeeur"});
customers.Add(new CustomerInfo { CustomerName = "Rasel" });
customers.Add(new CustomerInfo { CustomerName = "Fagun" });
return View(customers);
}
CustomerView页面:
@model IEnumerable<Customer.Models.CustomerInfo>
@using Customer.Models;
@{
ViewBag.Title = "Customers";
}
<h2>@ViewBag.Title.</h2>
<h1>Customer Name</h1>
<ul>
@foreach(CustomerInfo customer in @Model)
{
<li>
@Html.ActionLink(customer.CustomerName, "Index", "Customer", new {id = customer.CustomerId})
</li>
}
</ul>
从这个视图页面,我将 id 传递给另一个名为 CustomerController 的控制器页面
代码:
namespace Customer.Controllers
{
public class CustomerController : Controller
{
// GET: Customer
public ActionResult Index(int id)
{
var list = new List<CustomerInfo>();
var item = list.Find(x => x.GetId(id));
return View(item);
}
}
}
查看CustomerController的页面查看:
@model Customer.Models.CustomerInfo
@{
ViewBag.Title = "Customer Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Customer Index</h2>
<h3>@Model.CustomerId</h3>
<h3>@Model.CustomerName</h3>
<h3>@Model.ItemName</h3>
我的问题是,当我点击任何客户时,它都不起作用。
【问题讨论】:
-
你的问题是......?
-
您没有为
CustomerId设置任何值 - 它们都将是0(int的默认值),因此Index()方法中id的值将是@987654343 @ -
在该方法中,您只需生成一个不包含任何项目的新列表,因此将没有要返回的项目
-
“我的问题是,当我点击任何客户时,它都无法正常工作。” 并不是一个真正的问题......什么不起作用?您尝试过什么来解决此问题?你有错误吗?人们来这里是为了帮助,当然——但在某些情况下,我们不想复制/粘贴你的整个代码来编译它并自己调试它。您需要事先进行一些调试,并尝试描述您遇到的确切问题(如果可能)。
-
您应该有一个数据库上下文实例来检索客户详细信息。然后使用 DbSet Find 获取客户详细信息。
标签: c# asp.net-mvc razor asp.net-mvc-5