javascript - 在 MVC 局部视图中使用 Bootstrap 插件的正确方法
问题描述
我想使用 Bootstrap Filestyle 2 插件来自定义输入文件。问题是我的输入文件处于模式中,其正文内容显示在部分视图中。
它是这样工作的:
模态调用:
@Ajax.ActionLink("Open", "PartialView",
new {},
new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "Preview_myModal_test", InsertionMode = InsertionMode.Replace, OnSuccess = "Open_myModal_test()" },
new { @class = "btn btn-sm btn-default" })
在哪里
function Open_myModal_test() {
$('#myModal_test').modal('show');
}
模态的定义:
<div class="modal fade" id="myModal_test" 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">Test</h4>
</div>
<div class="modal-body align-self-center" id="Preview_myModal_test">
@*PartialView*@
</div>
</div>
</div>
</div>
我的部分视图如下所示:
@using (Html.BeginForm("Main", "Controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="form-group">
<!-- Here I would like to use this: -->
<input type="file" class="filestyle">
</div>
<div class="text-right">
<input type="submit" value="Finish and Send" class="btn btn-sm btn-default" />
<button class="btn btn-sm btn-default" data-dismiss="modal">Cancel</button>
</div>
}
我也不知道在哪里加载bootstrap-filestyle.min.js
,因为据我所知,无法在局部视图中使用部分。
我希望有人可以在这里帮助我。
解决方案
asp.net mvc 小提琴链接https://dotnetfiddle.net/CdIgBf
控制器
public class HomeController : Controller
{
public ActionResult PartialViewAction()
{
return PartialView("PartialView");
}
[HttpPost]
public ActionResult Index30(HttpPostedFileBase theFile)
{
return View();
}
public ActionResult Index30()
{
return View();
}
看法
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index30</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-filestyle/2.1.0/bootstrap-filestyle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-ajax-unobtrusive/3.2.6/jquery.unobtrusive-ajax.min.js"></script>
<script>
function Open_myModal_test() {
$('#myModal_test').modal('show');
}
</script>
</head>
<body>
@Ajax.ActionLink("Open", "PartialViewAction",
new { },
new AjaxOptions
{
HttpMethod = "GET",
UpdateTargetId = "Preview_myModal_test",
InsertionMode = InsertionMode.Replace,
OnSuccess = "Open_myModal_test()"
},
new { @class = "btn btn-sm btn-default" })
<div id="Preview_myModal_test"></div>
</body>
</html>
局部视图
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-filestyle/2.1.0/bootstrap-filestyle.min.js"></script>
<div class="modal fade" id="myModal_test" 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">Test</h4>
</div>
<div class="modal-body align-self-center" id="Preview_myModal_test">
@using (Html.BeginForm("Index30", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="form-group">
@Html.TextBox("theFile", "", new { type = "file", @class = "filestyle" }) <br />
</div>
<div class="text-right">
<input type="submit" value="Finish and Send" class="btn btn-sm btn-default" />
<button class="btn btn-sm btn-default" data-dismiss="modal">Cancel</button>
</div>
}
</div>
</div>
</div>
</div>
推荐阅读
- android - 多次设置实时数据值仅在最后一次触发观察者
- css - 带有 WebSecurity 的 Spring Boot 应用程序看不到 css
- mysql - 如何创建一个新列来保存具有相同值的所有行的所有主键值?
- python - 测试数据集的标准化
- java - Play 2.6 with Java - 添加环境依赖注入
- html - 为什么下拉列表位于粘性元素下方?
- swift - 点击 NavigationLink 后隐藏导航栏但保留后退按钮
- r - 可变长度不同
- scala - 如何从一个序列中创建两个序列,将一个自定义对象与该序列中的另一个进行比较?
- docker - 如何通过 docker 让 bash shell 访问 vernemq 映像?