我花了很多时间来理解如何使用模态弹出窗口,但我还没有找到任何好的答案,或者我应该说明完整的工作代码。
我正在寻找一种使用MVC HTTPGET,HTTPPOST方法的方法,在Javascript或Ajax中不应该有硬编码的属性名称
这是我到目前为止所能实现的目标:
我是AJAX的新手,JQUERY
主要错误:我无法在此处正确使用SAVE按钮,即在Internet Explorer和Chrome中未调用HTTPPOST操作,但在Firefox中可以使用
尝试了其他一些解决方案,每个解决方案都有自己的问题。可能是这些帖子中的一些旧的和jquery版本已经过时的少数控件。
这个功能几乎被使用和讨论,所以如果有人有工作代码,那么请分享。
CODE 以下是我的完整代码:http://pastebin.com/yNH7CFTS
错误提示我不确定这是否是问题,但在Internet Explorer中按“保存”按钮然后对话框关闭调用HTTPPost操作和浏览器中的网址:
http://localhost:53381/Project/Details/1?ProjectId=1&Effort=0&Cost=56
值1,0,56是我在文本框中输入的内容
任何人都可以使用RESTFUL方法在asp.net MVC中发布MODAL / POPUP的完整答案。
答案 0 :(得分:0)
使用$ .post jquery方法调用这样的httppost控制器操作:
$.post(
"addressofaction",
{}).done(function () {
alert("do something"
})
}).fail(function () {
alert("error");
})
答案 1 :(得分: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
}
}
});
}
答案 2 :(得分: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>
但是,Modal对话框div不应与索引视图代码一起使用。即,这应该完全在索引视图代码之外。
在Best approach for Modal建议的代码中,它不可重复,因为它涉及非常基本的代码。
<div id='dialogDiv' class='modal hide fade in'>
<div id='dialogContent'></div>
</div>
可以帮助别人。