部分视图无法显示

时间:2014-04-18 07:05:11

标签: asp.net asp.net-mvc-3 asp.net-mvc-4

我不知道是什么原因但是我的部分视图没有显示,我尝试了其他视图,但问题仍然存在。我使用@ Ajax.ActionLink调用此部分视图,我已经放置了调试点,因此它清楚地显示它转到控制器方法并成功返回部分视图但它没有显示。

查看(这里我称之为控制器方法):

<li class="nav-menu">@Ajax.ActionLink("Request for Change MobileNumber and EmailId", "ChangeMob", "Admin", new AjaxOptions { UpdateTargetId = "result" })</li>

控制器方法:

 public ActionResult ChangeMob()
    {
        if (Request.IsAjaxRequest())
        {
            var model = new ChangeMob();
            var db = new clubDataContext();
            var list2 = (from s in db.tblChanges

                         select new ChangeMob()
                         {
                             id= s.Id,
                             oldno = s.Old_CNo,
                             newemail = s.New_Email,
                             oldemail = s.Old_Email,
                             mobileoremail = s.Mob_or_Email,
                             newno = s.New_CNo
                         }).ToList();
            ViewBag.Request = list2;
            return PartialView("ChangeMob", model);
        }
        else
            return RedirectToAction("Index", "home");
    }

部分视图:

@model IEnumerable<club.Models.ChangeMob>
<h2>Hello there!</h2>

<p>
 @Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
    <th>
        @Html.DisplayNameFor(model => model.oldno)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.newno)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.oldemail)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.newemail)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.mobileoremail)
    </th>
    <th></th>
 </tr>

  @foreach (var item in ViewBag.Request)
{
<tr>
    <td>
        @item.oldno
    </td>
    <td>
        @item.newno
    </td>
    <td>
        @item.oldemail
    </td>
    <td>
        @item.newemail
    </td>
    <td>
        @item.mobileoremail
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.id }) |
        @Html.ActionLink("Details", "Details", new { id=item.id }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.id })
    </td>
</tr>
}

</table>

2 个答案:

答案 0 :(得分:2)

我在你的代码中看到了一个错误。

在ChangeMob Action中,您返回ChangeMob类型的模型,但部分视图具有另一种类型:

@model IEnumerable<club.Models.ChangeMob>

你应该把它改成

@model club.Models.ChangeMob

部分视图显示。您是否包含“jquery.unobtrusive-ajax.min.js”库以使用Ajax.ActionLink?

像这样:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>

答案 1 :(得分:0)

将您的控制器返回类型从公共 ActionResult ChangeMob()转换为公共 PartialViewResult ChangeMob()并检查

并确保targetID“result”未设置为dispaly:none

如果有效,请将其标记为已回答。