【问题标题】:Partial View not displaying部分视图不显示
【发布时间】:2014-04-18 07:05:11
【问题描述】:

我不知道是什么原因,但我的部分视图没有显示,我尝试了其他视图但问题仍然存在。我正在使用@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>

【问题讨论】:

  • 你看到什么萤火虫????
  • 请同时发布主视图
  • 什么是萤火虫?我没用,请简单介绍一下
  • 我已经发布了我调用控制器方法的主视图
  • @DotNetWeblineindia 请给出问题链接

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


【解决方案1】:

我发现您的代码中有一个错误。

在 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>

【讨论】:

    【解决方案2】:

    使您的控制器返回类型从 public ActionResult ChangeMob() 到 public PartialViewResult ChangeMob() 并检查

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多