内部连接不工作与视图在mvc
本文关键字:视图 mvc 工作 连接 内部 | 更新日期: 2023-09-27 18:03:09
我正在开发MVC应用程序,在那里我将内部连接结果从控制器传递到视图,如下所示:
public class CartController : Controller
{
ApostilleUSEntities db = new ApostilleUSEntities();
public ActionResult Index()
{
var query = db.tbl_cart
.Join(db.tbl_document_type,
cart => cart.document_type_id,
doc_type => doc_type.document_type_id,
(cart, doc_type) => new { Cart = cart,Doc_type = doc_type }
).ToList();
return View(query);
}
}
和view I显示列表如下:
@{
var index=1;
foreach (var i in Model)
{
<tr>
<td>@index</td>
<td>@i.country_id</td>
</tr>
index++;
}
}
给了我下面的错误:
对象中不存在购物车如果我把内部连接改成简单连接,像这样:
public class CartController : Controller
{
ApostilleUSEntities db = new ApostilleUSEntities();
public ActionResult Index()
{
var query1 = db.tbl_cart.ToList();
return View(query);
}
}
@{
var index=1;
foreach (var i in Model)
{
<tr>
<td>@index</td>
<td>@i.country_id</td>
</tr>
index++;
}
}
一切正常。动态视图不工作与内部连接?我应该使用模型吗?
问题在于Model属性的使用。你正在返回两个对象Cart和Doc_type,但在视图中,你正在迭代模型属性,它们再次是Cart和Doc_type。
您可以尝试使用@i.Cart。country_id
另一个解决方案是,您可以将强类型模型与视图绑定。你可以返回一个强类型的ViewModel:
var query = db.tbl_cart
.Join(db.tbl_document_type,
cart => cart.document_type_id,
doc_type => doc_type.document_type_id,
(cart, doc_type) => new
CartModel {
CartProp1 = cart.Prop1,
CartProp2 = cart.Prop2,
CartProp3 = cart.Prop3,
DocProp1 = doc_type.Prop1,
DocProp2 = doc_type.Prop2
}
).ToList();