jquery dilaog没有显示404号视图,只是空白屏幕mvc 4

jquery dilaog not showing view no 404 just blank screen mvc 4

本文关键字:空白 屏幕 mvc 视图 dilaog 显示 404号 jquery      更新时间:2023-09-26

为什么我的对话框没有弹出?

jQuery

    $('.ITA').dialog({
    autoOpen: false,
    draggable: true,
    width: 400,
    resizable: false,
    dialogClass: "ui-dialog",
    modal: true,
   // show: { effect: 'fade', duration: 300 }
  });
 $(".AllItemsBtn").on("click", function (e) {
    e.preventDefault();
   // $(this).css('cursor', 'pointer');
    var url = $(this).attr('href');
    alert(url);
    $('.ITA').load(url, function () {
        $('.ITA').dialog("open");
    });
   });

控制器

  public ActionResult GetItemsToAdd()
    {
        var Uid = WebSecurity.GetUserId(User.Identity.Name);
        var UserItems = from i in db.Items
                        where i.user_id == Uid 
                        select i;
        var results = UserItems;
        return PartialView("_AllItemsPartial", UserItems );
    }

VIEW _AllItemPartial:要加载到对话框中的视图

@model IEnumerable<Item>
<style>
.ui-dialog,.ui-dialog,.ui-widget, 
.ui-widget-content, .ui-corner-all, 
.ui-draggable, 
.ui-resizable {background-color:#ffd800 !important;
}

</style>
@foreach (var item in Model)
{ 
<ul>
    <li>
        @Html.DisplayFor(modelItem => item.ID)
    </li>
     <li>
        @Html.DisplayFor(modelItem => item.item_name)
    </li>
    <li>
        @Html.DisplayFor(modelItem => item.item_description)
    </li>
</ul>
 }

视图_ItemPartial:addItemsBtn在此视图中

  <div id="tradeItem">
 @foreach (var item in Model)
{ 
<ul>
    <li>
        @Html.DisplayFor(modelItem => item.ID)
    </li>
     <li>
        @Html.DisplayFor(modelItem => item.item_name)
    </li>
    <li>
        @Html.DisplayFor(modelItem => item.item_description)
    </li>
</ul>

}
</div>
  <a class="AllItemsBtn" id="AllItemsBtn" href='@Url.Action("GetItemsToAdd")' >Add 
 File...</a>
 <div class = "ITA">/*load to this div*/</div>

编辑:我下面的答案是在发帖者更新他的原始帖子之前,所以它可能看起来无关紧要。如果有人遇到同样的问题,也可以阅读评论:)

原帖:

在调用此代码之前,您必须"return false;":

$('#ITA').dialog({
autoOpen: false,
draggable: true,
width: 'auto',
resizable: false,
dialogClass: "ui-dialog",
modal: true,
show: { effect: 'fade', duration: 300 } });

它永远不会被调用。

编辑:您需要将选择器更改为(".ITA")

编辑2:Nicolae是对的,将此代码作为加载调用的回调。我不明白为什么对话框库不支持url作为选项。

编辑3:你还需要在事件上调用preventDefault(),这样锚标记就不会重定向你的浏览器

编辑4:顺便说一句,这句话很奇怪:$(this).css('cursor','pointer');将css样式放在单击按钮之前,而不是放在之后

将选择器更改为class,"ITA"是我所看到的类,而不是ID

更改

$('#ITA')...

$('.ITA')...

编辑:

取而代之的是:

$('#ITA').load(url, function () {
    });

尝试添加以下内容:

$('.ITA').load(url, function () {
      $('.ITA').dialog("open"); // on success load, try to open the dialog here
    });