jQuery对话框中的局部视图

时间:2015-04-17 12:31:39

标签: asp.net-mvc asp.net-mvc-4 c#-4.0

这是我的控制器,我使用主键作为字符串。

当我点击详细链接时,员工发送到控制器和控制器搜索由id员工获取并返回带有员工详细信息的部分视图

public ActionResult Details(string id)
{
    var data = oj.GetById(id);
    return PartialView("~/Views/Partial/Details.cshtml", data);
}

这是我的观点

@model HIRS_System.Models.Details
<fieldset>
    <legend>Details</legend>
    <div class="display-label">
         @Html.DisplayNameFor(model => model.dept_id)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.emp_id)
    </div>
    <div class="display-label">
        @Html.DisplayNameFor(model => model.emp_fname)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.emp_fname)
    </div>

    .... // other properties

    <div class="display-label">
        @Html.DisplayNameFor(model => model.dept_id)
    </div>
    <div class="display-field">
        @Html.DisplayFor(model => model.dept_id)
    </div>
</fieldset>

数据库GetById代码

public IEnumerable<Employee> GetById(string id)
{
    return obj.Employees.Where(x => x.emp_id == id);
}

我的问题是何时单击详细信息按钮部分视图显示此错误

enter image description here

如果我使用@model IEnumerable<HIRS_System.Models.Details>

然后显示此错误

enter image description here

1 个答案:

答案 0 :(得分:1)

我假设您希望GetById()返回零个或一个员工,因此请更改方法以返回Employee

public Employee GetById(string id)
{
    return obj.Employees.FirstOrDefault(x => x.emp_id == id);
}

然后将视图更改为实际使用该类型:

@model DataLayer.Employee