【问题标题】:I tried to render partial view inside my view with jquery , but the the part of partial view dosen't appear in run time我试图用 jquery 在我的视图中渲染部分视图,但部分视图的部分没有出现在运行时
【发布时间】:2016-11-27 06:58:09
【问题描述】:

这些是控制器中的操作:

 public ActionResult AdminRoles(int? selectedValue)
        {
            if (!LogedUser.InRole(Functions.User, Roles.View)) return RedirectToAction("Login");

           return View(db.Users.Where(u => u.Id != 1));
       }
      [HttpGet]
    public ActionResult GetAdminRoles(int Id)
    {
        var secRole = db.SecurityRoles.Where(s => s.AdminId == Id);
        var func = db.SystemFunctions.ToList();

        if (func.Count() > secRole.Count())
        {
            foreach (var item in func)
            {
                if (secRole.Where(s => s.SystemFunctionId == item.Id).Count() <= 0)
                {
                    SecurityRoles sec = new SecurityRoles();
                    sec.AdminId = Id; sec.SystemFunctionId = item.Id;
                    sec.CanView = false; sec.CanAdd = false; sec.CanEdit = false; sec.CanDelete = false;
                    db.SecurityRoles.Add(sec);
                    db.SaveChanges();
                }
            }
        }

        return PartialView("GetAdminRoles",db.SecurityRoles.Where(s => s.AdminId == Id));
    }
    [HttpPost]
    public ActionResult GetAdminRoles(int hdnAdminIDs, int[] CanView, int[] CanAdd, int[] CanEdit, int[] CanDelete)
    {
        var list = db.SecurityRoles.Where(o => o.AdminId == hdnAdminIDs).ToList();

        foreach (var item in list)
        {
            if (CanView != null && CanView.Contains(item.Id))
                item.CanView = true;
            else
                item.CanView = false;


            if (CanAdd != null && CanAdd.Contains(item.Id))
                item.CanAdd = true;
            else
                item.CanAdd = false;


            if (CanEdit != null && CanEdit.Contains(item.Id))
                item.CanEdit = true;
            else
                item.CanEdit = false;


            if (CanDelete != null && CanDelete.Contains(item.Id))
                item.CanDelete = true;
            else
                item.CanDelete = false;
        }
        db.SaveChanges();

        return RedirectToAction("AdminRoles");
    }

以下是 AdminRoles() 操作,其中包括将带来部分视图 GetAdminRoles 的 JQuery 脚本 注意:我尝试了几个脚本(在注释标记之间)

 @model IEnumerable<Arabawy.Models.User>
 @{
   ViewBag.Title = "ContactusMessages";
   Layout = "~/Views/Shared/_LayoutAdmin.cshtml";
   ViewBag.CurrentURI = "/IWS/adminroles".ToLower();
  }

<script>
    $(function () {

        @*$.get('@Url.Content("~/IWS/GetAdminRoles/")' + "?Id=" + $('#AdminIDs').val(), function (data) {

            /* data is the pure html returned from action method, load it to your page */
            $('#partialPlaceHolder').html(data);
            /* little fade in effect */
            $('#partialPlaceHolder').fadeIn('fast');
        });*@


        $('#AdminIDs').change(function () {
            debugger
            /* Get the selected value of dropdownlist */
            var selectedID = $(this).val();

            /* Request the partial view with .get request. */
            $.get('@Url.Content("~/IWS/GetAdminRoles/")' + "?Id=" + selectedID, function (data) {

                /* data is the pure html returned from action method, load it to your page */
                $('#partialPlaceHolder').html(data);
                /* little fade in effect */
                $('#partialPlaceHolder').fadeIn('fast');
            });

        });
    });
</script>

<div class="pages_inner_content">
    <div class="title_page_start">
        <div class="right_title">
            <h2>صلاحيات المشرفين</h2>
            <h2><span>تحديث  صلاحيات المشرفين</span></h2>
        </div>
        <div class="left_lisks">
            <ul class="links_buttons">
                @{if (Arabawy.LogedUser.IsLoged() &&
                Arabawy.LogedUser.InRole(Arabawy.Controllers.IWSController.Functions.User, Arabawy.Roles.Edit))
                {
                <li class="add_fo">
                    <a href="javascript:;" onclick="submitForm()" data-hover="حفظ"><span> حفظ </span></a>
                </li>
                }}
                <li class="exit">
                    <a href="@Url.Action("Index")">خروج</a>
                </li>
            </ul>
        </div>
    </div><!--title_page_start-->

    <div class="bread_cramb bread_cramb_akh_ed">
        <h3> أدوات الأداره  &nbsp; <span> صلاحيات المشرفين </span> </h3>
    </div>  <!--bread_cramb-->


    <div class="block_in_editor">
        <h3>صلاحيات المشرفين</h3>

        <div style="clear:both"></div>

        <div class="add_khaber_form">
            @Html.ValidationSummary(false)

            <hr />
            <div class="blog_form_input">
                <label>اختر  : </label>
                <select class="select" id="AdminIDs" name="AdminIDs">
                    <option value="" selected>&lt; اختر المشرف &gt;</option>
                    @{foreach (var item in Model)
                    {
                        <option value="@item.Id">@item.DisplayName</option>
                    }}
                </select>
            </div>
        <br />

            <div id="partialPlaceHolder" style="display:none;"> </div>


        </div><!--add_khaber_form-->

    </div><!--block_in_editor-->
</div><!--pages_inner_content-->

这是 GetAdminRoles 的视图

@model IEnumerable<Arabawy.Models.SecurityRoles>
<script>
function submitForm() {
        $("#hdnAdminIDs").val($("#AdminIDs").val());
        $('#formID').attr('target', '_self');
        $("#formID").submit();        
}
       </script>
<form action="@Url.Action("GetAdminRoles")" target="_self" id="formID" method="post" enctype="multipart/form-data">
@Html.Hidden("hdnAdminIDs")
<div class="block_in_adv">
    <div style="clear:both"></div>
    <div style="clear:both"></div>
    <div class="table_adv_show">
        <div class="row_first color_row">
            <div class="cols_mos_2">اسم الصفحة</div>
            <div class="cols_mos_3">امكانية رؤية الصفحة</div>
            <div class="cols_mos_3">امكانية الأضافة </div>
            <div class="cols_mos_3">امكانية التعديل </div>
            <div class="cols_mos_3">امكانية المسح</div>
        </div><!--main_row_opi-->

        <ul class="list_pages_web sortable list" id="itemContainer">
            @Html.Hidden("DeletedID")
            @foreach (var item in Model)
            {
            <li class="zoomInUp">
                <div class="block_row_table">
                    <div class="main_row_opi_res ">
                        <div class="cols_mos_2">اسم الصفحة</div>
                        <div class="cols_mos_3">امكانية رؤية الصفحة</div>
                        <div class="cols_mos_3">امكانية الأضافة </div>
                        <div class="cols_mos_3">امكانية التعديل </div>
                        <div class="cols_mos_3">امكانية المسح</div>
                    </div><!--main_row_opi-->

                    <div class="main_row_opi">
                        <div class="cols_mos_2">@item.SystemFunction.PageName</div>
                        @{
                string canView = item.CanView ? "checked" : "";
                string CanEdit = item.CanEdit ? "checked" : "";
                string CanAdd = item.CanAdd ? "checked" : "";
                string CanDelete = item.CanDelete ? "checked" : "";
                        }

                        <div class="cols_mos_3">
                            <input type="checkbox" name="CanView" id=@string.Format("CanView" + item.Id) class="css-checkbox9 all_check" value="@item.Id" @canView /><label for=@string.Format("CanView" + item.Id) class="css-label9" checked="checked">&nbsp; </label>
                        </div>
                        <div class="cols_mos_3">
                            <input type="checkbox" name="CanAdd" id=@string.Format("CanAdd" + item.Id) class="css-checkbox9 all_check" value="@item.Id" @CanAdd /><label for=@string.Format("CanAdd" + item.Id) class="css-label9" checked="checked">&nbsp; </label>
                        </div>
                        <div class="cols_mos_3">
                            <input type="checkbox" name="CanEdit" id=@string.Format("CanEdit" + item.Id) class="css-checkbox9 all_check" value="@item.Id" @CanEdit /><label for=@string.Format("CanEdit" + item.Id) class="css-label9" checked="checked">&nbsp; </label>
                        </div>
                        <div class="cols_mos_3">
                            <input type="checkbox" name="CanDelete" id=@string.Format("CanDelete" + item.Id) class="css-checkbox9 all_check" value="@item.Id" @CanDelete /><label for=@string.Format("CanDelete" + item.Id) class="css-label9" checked="checked">&nbsp; </label>
                        </div>

                    </div><!--main_row_opi-->
                </div><!--/*block_row_table*/-->
            </li>
            }

        </ul>

        <div class="holder"></div>

    </div><!--table_adv_show-->



</div><!--block_in_adv-->

所以,为什么我的局部视图没有出现在运行时???!!! 有什么问题吗 ???!! 请帮我 !!!!!!!!!!!!!!!!!!!!!

【问题讨论】:

  • 您发布的 javascript,该代码在哪里?我的意思是它在哪个视图中?
  • 在视图 AdminRoles 中(在 cmets 标记 @* ....*@ 之间)
  • @model IEnumerable
  • 导航到通过浏览器返回部分视图的操作,并查看它返回正确的结果。
  • 编译器错误消息:CS1061:“Arabawy.Models.SecurityRoles”不包含“SystemFunction”的定义,并且没有接受“Arabawy.Models.SecurityRoles”类型的第一个参数的扩展方法“SystemFunction”可以找到(您是否缺少 using 指令或程序集引用?) 第 38 行:
    @item.SystemFunction.PageName

标签: c# jquery asp.net-mvc html


【解决方案1】:

使用您的浏览器导航到该局部视图,以确定它是否返回了您期望的内容。一旦你确定它返回了预期的 HTML,那么你的代码应该可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2013-04-05
    • 2017-09-02
    • 1970-01-01
    • 2012-08-22
    • 2013-10-08
    相关资源
    最近更新 更多