我在MVC5解决方案中创建了一个非常简单的视图类。它使用Entity Framework并调用控制器类的一个操作。我想在我的主页上输出一个VIN号列表作为超链接。
视图类语法如下:
@{
ViewBag.Title = "Vehicle Inventory";
}
@model IEnumerable<TavernaMVC.Controllers.InventoryController>
<ul>
@foreach (var item in Model)
{
<li><a href="@item.Details">@item</a></li>
}
</ul>
错误如下:
CS1502: The best overloaded method match for
'System.Tuple.Create<object,int>(object, int)' has some invalid arguments
如何纠正我的代码,以便在视图类中输出每个VIN的详细信息?或者,我如何简单地将所有VIN值作为超链接输出?
答案 0 :(得分:2)
首先,您不应将控制器用作模型。你在使用什么型号的课程?既然你在谈论VIN,我猜它可以被称为Car
:
public class Car {
public int VIN { get; set; }
public string Details { get; set; }
}
在您的控制器中,您可以执行以下操作:
public ActionResult Index() {
var cars = db.Cars.ToList();
return View(cars);
}
然后,将您的视图定义为:
@model IEnumerable<TavernaMVC.Models.Car>
@{
ViewBag.Title = "Vehicle Inventory";
}
<ul>
@foreach (var item in Model)
{
<li><a href="@item.Details">@item.VIN</a></li>
}
</ul>
答案 1 :(得分:0)
如果TavernaMVC.Controllers.InventoryController
类看起来像:
public class TavernaMVC.Controllers.InventoryController
{
//VIN
public string VIN{get;set;}
//Url to Details
public URL Details{get;set;}
}
你用这个
<li><a href="@item.Details">@item.VIN</a></li>
作为li
行
答案 2 :(得分:0)
在第一行检查重命名的属性...
重命名属性并在Visual Studio中使用AutoRefactoring后,我没有更改CSHTM文件中的属性。