我一直在寻找到使用Twitter的引导模式窗口的局部视图。 不过,我真的不认为它的设计以这种方式使用; 好像它是为了在一个相当静态的方式使用。 不过,我觉得这是很酷,以便能够使用它作为一个局部视图。
因此,举例来说,假设我有游戏的列表。 当点击一个链接对于给定的游戏,我想从服务器请求数据,然后在一个模态窗口“在顶部”在本页面显示有关该游戏的信息。
我已经做了一点点研究,发现这个帖子是相似,但并不完全相同。
有没有人试图与成功还是失败? 任何人有什么的jsfiddle或某些来源,他们会愿意分享?
谢谢你的帮助。
是的,我们已经做到了这一点。
在你Index.cshtml你会碰到这样的..
<div id='gameModal' class='modal hide fade in' data-url='@Url.Action("GetGameListing")'>
<div id='gameContainer'>
</div>
</div>
<button id='showGame'>Show Game Listing</button>
然后,在JS在同一页(内联或在一个单独的文件,将有这样的事情..
$(document).ready(function() {
$('#showGame').click(function() {
var url = $('#gameModal').data('url');
$.get(url, function(data) {
$('#gameContainer').html(data);
$('#gameModal').modal('show');
});
});
});
有了您的控制器上的方法,看起来像这样..
[HttpGet]
public ActionResult GetGameListing()
{
var model = // do whatever you need to get your model
return PartialView(model);
}
当然,您将需要查看文件夹内名为GetGameListing.cshtml视图..
我这样做是与mustache.js和模板(你可以使用任何的JavaScript模板库)。
在我看来,我有这样的事情:
<script type="text/x-mustache-template" id="modalTemplate">
<%Html.RenderPartial("Modal");%>
</script>
......这让我保持我的模板被称为局部视图Modal.ascx
:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<div>
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>{{Name}}</h3>
</div>
<div class="modal-body">
<table class="table table-striped table-condensed">
<tbody>
<tr><td>ID</td><td>{{Id}}</td></tr>
<tr><td>Name</td><td>{{Name}}</td></tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<a class="btn" data-dismiss="modal">Close</a>
</div>
</div>
我创建一个在我看来,每个模式的占位符:
<%foreach (var item in Model) {%>
<div data-id="<%=Html.Encode(item.Id)%>"
id="modelModal<%=Html.Encode(item.Id)%>"
class="modal hide fade">
</div>
<%}%>
...并与jQuery的AJAX调用:
<script type="text/javascript">
var modalTemplate = $("#modalTemplate").html()
$(".modal[data-id]").each(function() {
var $this = $(this)
var id = $this.attr("data-id")
$this.on("show", function() {
if ($this.html()) return
$.ajax({
type: "POST",
url: "<%=Url.Action("SomeAction")%>",
data: { id: id },
success: function(data) {
$this.append(Mustache.to_html(modalTemplate, data))
}
})
})
})
</script>
然后,你只需要一个触发的地方:
<%foreach (var item in Model) {%>
<a data-toggle="modal" href="#modelModal<%=Html.Encode(item.Id)%>">
<%=Html.Encode(item.DutModel.Name)%>
</a>
<%}%>
我以一个很好的例子,我发现这实现了这里 。 我已经取代了与Twitter的引导模态窗口例子中使用jQuery的对话框。
完整清晰的示例项目http://www.codeproject.com/Articles/786085/ASP-NET-MVC-List-Editor-with-Bootstrap-Modals它显示创建,编辑和删除与引导实体经营情态动词,也包括代码处理结果从这些实体操作返回(C#,JSON,JavaScript的)
我使用AJAX来做到这一点。 你有你的部分与典型的Twitter模式的HTML模板:
<div class="container">
<!-- Modal -->
<div class="modal fade" id="LocationNumberModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
×
</button>
<h4 class="modal-title">
Serial Numbers
</h4>
</div>
<div class="modal-body">
<span id="test"></span>
<p>Some text in the modal.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
</div>
然后,你有你的控制器的方法,我用JSON和有rendors视图为字符串自定义类。 我这样做,所以我可以有一个Ajax调用屏幕上执行多个Ajax更新。 参考这里: 实例 ,但你可以在返回使用PartialViewResult / ActionResult的,如果你只是在做的一个电话。 我会告诉它使用JSON ..
和JSON方法控制器:
public JsonResult LocationNumberModal(string partNumber = "")
{
//Business Layer/DAL to get information
return Json(new {
LocationModal = ViewUtility.RenderRazorViewToString(this.ControllerContext, "LocationNumberModal.cshtml", new SomeModelObject())
},
JsonRequestBehavior.AllowGet
);
}
热网问题
- 是书错奈奎斯特采样准则?
- 写缓冲区命令,附加标准输出回到同一缓冲区
- 将在法拉第笼中的小孔显着阻断干扰降低其有效性?
- 如何创建一个符号描绘唐克努特?
- 当一个想象的世界相似或具有与世界著名的相似之处
- 可在我们的太阳系外一颗褐矮星仍未被发现的今天?
- 什么是一给定整数的出现次数的从均匀整数[1,N]分布中抽取的分布,重复样品中?
- 我怎样才能角色扮演一个跟随型性格,当我作为一名球员有一个领导型的个性?
- 为什么是“打破模子”积极connoted?
- 为什么示波器的输入阻抗如此之低?
- 有没有什么办法来构造查询到所有的线穿过多边形返回值?
- 我应该写\ {开始}报价... \结束{}报价或\报价... \ endquote?
- 我该如何,作为DM,办理决定设立一个地牢埋伏的一方?
- 可以在我的2个孩子,10和12岁,谁是美国公民,前往美国旅行的美国过期护照?
- 什么是豪华车品牌讴歌一样/雷克萨斯在他们的兄弟姐妹非奢侈品牌本田/丰田的优势是什么?
- 什么战二战的这个战场V电平被描述?
- 为什么没有被描述为社会主义在俄罗斯国有化?
- 一个永恒的神将Deep Freeze的洗牌陶醉回如果死在甲板?
- 它是一个上市包的bug?
- 没有亿韩元? Wone元
- 下雨的时候,它水坑。 湿法和干法与湿度之间溢出盐循环。 这是类似于一个相变?
- 有绿巨人总是能谈谈吗?
- 为什么一个没有军事部队分成不同的分支?
- 如何绘制drawstack / TiKz堆栈?
更多热点问题