1

我收到了这个错误:

The model item passed into the dictionary is of type 'System.Boolean', but this dictionary requires a model item of type 'DunyaYazilim.Models.TBL_CATEGORIES'.

这是我的看法:

@model DunyaYazilim.Models.TBL_CATEGORIES
@{
    ViewBag.Title = "EditCategory";
}
@using (Html.BeginForm((string)ViewBag.FormAction, "Administrator"))
{
    <div>
        <div>Category Name</div>
        <div>@Html.TextBoxFor(m => m.Name)</div>
        <input type="submit" value="Submit" />
    </div>
}

这是控制器:

public ActionResult EditCategory(int CategoryID)
{
    return PartialView(entity.TBL_CATEGORIES.Select(c=>c.CategoryID==CategoryID).FirstOrDefault());
}

和行动链接:

@Html.ActionLink("update", "EditCategory", "Administrator", new { CategoryID = categories.CategoryID }, new { @class = "openDialog", dialog_id = "EditCategory", dialog_title = "Update Category" })

谢谢。

4

1 回答 1

2

您的选择语句是问题的原因-它返回布尔值-我认为您的意思是 c=>c.CategoryID==CategoryID 位于 Where 或 FirstOrDefault 中(取决于您的数据源-我没有认为 EF 4.0 支持 FirstOrDefault 中的子句)

尝试

public ActionResult EditCategory(int CategoryID)
{
    return PartialView(entity.TBL_CATEGORIES.Where(c=>c.CategoryID==CategoryID).FirstOrDefault());
}

Select 旨在投影结果,而不是 where 子句。

于 2012-04-29T18:09:41.787 回答