2

我花了很多时间来了解如何使用模态弹出窗口,但我还没有找到任何好的答案,或者我应该说明完整的工作代码。

我正在寻找一种使用 MVC HTTPGET、HTTPPOST 方法的方法,并且在 Javascript 或 Ajax 中不应有硬编码的属性名称

这是我到目前为止能够实现的目标:
在此处输入图像描述

我对 AJAX、JQUERY 还很陌生

主要错误:我无法在此处正确使用 SAVE 按钮,即 HTTPPOST 操作未在 Internet Explorer 和 Chrome 中调用,但在 Firefox 中有效

  1. 基于此链接的方法,但它没有在 Internet Explorer 中运行。问题:HTTPPOST 操作无法在 Internet Explorer 或 Chrome 中调用
  2. 试图遵循他的完整文章,但不喜欢 JSON 的使用方式和执行验证的方式。
  3. Jquery UI modal form:想使用这样的功能,但不知道如何在其中使用 ASP.net MVC4 HTTP GET 和 HTTP POST。
  4. 也试过这个演示但是:(
  5. 这个不错,尝试使用他的完整源代码来实现,但仍然无法工作
  6. ASP.net MVC Modal对这个寄予厚望。下载,尝试在 2-3 小时后实现所有内容,即使这不是它所说的“准备使用”。有关它的更多信息
  7. 代码项目:三种jquery modal的比较虽然是在ASPX中,但还是尝试实现。(没有成功:()

尝试了其他几个解决方案,每个都有自己的问题。可能这些帖子中的一些是旧的,并且 jquery 版本已经过时了一些控制。

此功能已被大量使用和讨论,因此如果有人有工作代码,请分享。

代码这是我的完整代码: http: //pastebin.com/yNH7CFTS

错误提示我不确定这是否是问题,但在 Internet Explorer 中,当我按下保存按钮时,对话框关闭,调用 HTTPPost 操作,浏览器中的 url 为:

http://localhost:53381/Project/Details/1?ProjectId=1&Effort=0&Cost=56  

其中值 1 ,0 ,56 是我在文本框中输入的

任何人都可以使用 RESTFUL 方法在 asp.net MVC 中发布有关 MODAL / POPUP 的完整答案。

4

3 回答 3

0

最后发现问题不在于方法,而在于“DialogDiv”代码的放置。

What 's the best way to call a modal dialog in ASP.NET MVC using Twitter Bootstrap?绝对是整洁和好的方法。这是我做错了什么。

我在“index.cshtml”中写了这个

<!-- Estimated Effort Region -->
   <div class="span5">
      <h4>
              Estimated Effort
        <!-- Open  Bootstrap Modal using this link -->
         @Html.ActionLink("Create", "Create", null, null, 
              new { id = "btnCreate", @class = "btn" })
        <div id='dialogDiv' class='modal hide fade in'>
            <div id='dialogContent'></div>
       </div>
      </h4>                   

     <!-- Table on project details page -->
     <table class="table">
          <!-- Stuff related to displaying table -->
     </table>
  </div>

但是,模态对话框 div 不应该在索引视图代码中。即这应该完全在索引视图代码之外。

它不会在模态的最佳方法中建议的代码中重现, 因为它涉及非常基本的代码。

<div id='dialogDiv' class='modal hide fade in'>
    <div id='dialogContent'></div>
</div>

可能会帮助某人。

于 2013-07-04T14:33:44.700 回答
0

使用 $.post jquery 方法调用您的 httppost 控制器操作,如下所示:

$.post(
    "addressofaction",
        {}).done(function () {
            alert("do something"
            })
        }).fail(function () {
            alert("error");
        })
于 2013-07-03T22:44:57.173 回答
0

我无法测试它,我只是尽可能地简化了我之前为具有大量自定义的 Web 应用程序编写的代码。

看法

@using (Html.BeginForm("PostAction", "A" , FormMethod.Post ,new { @class = "modal-form", id = "asd" }))
{
<div class="modal-header">Header</div>
<div class="modal-body">
.........
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button type="submit" class="btn btn-success">Save</button>
}

假设它是AController

[HttpPost]
public JsonResult PostAction(PostModel model)
{
    return Json(true);
}

和最新版本的 jQuery

$(document).on("submit", 'form.modal-form', function (e)
{
   e.preventDefault();
   var form = $(this);
   $.ajax({
                url:form.attr("action"),
                type:"POST",
                data:form.serialize(),
                contentType:"application/json; charset=utf-8",
                success: function(result){
                    if (result) {
                           //Returns true
                    }
                    else {
                        //Returns false
                    }
                }
            });
}
于 2013-07-03T22:45:55.943 回答