我使用 Visual Studio 2012 开发了一个 ASP.Net MVC 5 应用程序。现在我想在我的项目中集成一个支持 MVC5、Web API 和 JSON 响应的 .Net CMS,所以我发现 Piranha 支持 MVC 5,但我不能我想要一些好的东西,比如入门教程,而不是官方网站。
谢谢。
因此,我正在玩我制作的练习网站,我想尝试一个功能,该功能允许我选择表中的任何数据值,对其进行编辑,然后将其保存到数据库中。
现在我有一个“编辑”按钮,它在控制器中运行自动生成的编辑方法,并且有自己的用于编辑和保存的视图,但我想在索引视图中尝试此编辑功能(或者至少传递数据到此索引视图中的编辑功能)
这是页面现在的样子

我还有一个行扩展脚本,它显示一些我也希望可编辑的附加信息。(全部在同一视图中)

查看Index.cshtml的代码
@model IEnumerable<WebApplication2.Entities.Movie>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<style type="text/css">
table tr button {
opacity: 0.5;
float: right;
}
table tr:hover button {
opacity: 1;
}
</style>
<br />
<br />
<br />
<br />
<div class="panel panel-primary" style="width:100%">
<div class="panel-heading">
<span style="font-size: 30px; font-style:oblique"><span style="font-size:larger;"><span style="margin-right: 5px" class="glyphicon glyphicon-film"></span>Movies</span></span>
</div>
<div class="col-lg-offset-8 col-lg-4">
<button type="button" style="margin:3px" class="btn btn-success btn-block" onclick="location.href='@Url.Action("Create")';return false;"><span style="font-size:larger"><span style="margin-right: 5px" class="glyphicon glyphicon-plus"></span>Add New Movie</span></button>
</div>
<table class="table …Run Code Online (Sandbox Code Playgroud) 我的 JQuery 自动完成工作几乎正常。插入“Af”后,如果我按 KeyDown,我会正确地得到“阿富汗”。但是,我永远看不到所有国家/地区的下拉列表。我是否缺少一些自动完成选项?
我的代码:
@Html.TextBox("Countries", "", new { @class = "COUNTRIES", @placeholder = "Insert Country..."})
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script>
$(function () {
var countriesList = ["Afghanistan", "Albania", "Algeria"]
$(".COUNTRIES").autocomplete({ source: countriesList });
});
</script>
Run Code Online (Sandbox Code Playgroud) 我的_Layout.cshtml文件使用该ViewBag模型来渲染一些动态内容。
据我所知,ViewBag可以在控制器中填充并在视图和/或布局页面中访问。
我的问题是,如果我的布局页面正在使用@ViewBag.SiteName,我想避免在返回视图之前在每个控制器中设置此变量。有没有办法在全局级别上设置此变量?或者我应该如何将此数据传递到布局页面?
我有以下脚本在我的 _layout 视图中呈现:-
$(document).ready(function () {
$("input[data-autocomplete-source]").each(function () {
var target = $(this);
target.autocomplete({
source: target.attr("data-autocomplete-source"),
minLength: 1,
delay: 1000
});
});
});
Run Code Online (Sandbox Code Playgroud)
我添加了以下字段以对其应用自动完成功能:-
<input name="term" type="text" data-val="true"
data-val-required= "Please enter a value."
data-autocomplete-source= "@Url.Action("AutoComplete", "Staff")" />
Run Code Online (Sandbox Code Playgroud)
现在,如果我将视图渲染为部分视图,则脚本将不会触发,并且不会执行自动完成,因此我在 ajax-success 中添加了自动完成,如下所示:-
$(document).ready(function () {
$(document).ajaxSuccess(function () {
$("input[data-autocomplete-source]").each(function () {
var target = $(this);
target.autocomplete({
source: target.attr("data-autocomplete-source"),
minLength: 1,
delay: 1000
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
现在添加AjaxSuccess操作方法后将被调用,当我检查 IE F12 开发人员工具上的响应时,我可以看到浏览器将收到 json 响应,但字段内不会显示任何内容(我的意思是自动完成结果不会显示)在局部视图上)?
编辑
负责自动完成的操作方法是:-
public async Task<ActionResult> AutoComplete(string term)
{ …Run Code Online (Sandbox Code Playgroud) 设想:
问题:
当用户单击关闭按钮或角落中的“X”时,我通过为这两个元素分配一个类并向此类分配一个事件来捕获此事件。
代码:
$(document).on("click", ".dialogTankClose", function() {
//some code
})
Run Code Online (Sandbox Code Playgroud)
我的问题是,当用户单击对话框外部或按“转义”时,我无法弄清楚如何捕获。
$(document).on("click", "modalCloseEvent",function(){
// how to catch this?
})
Run Code Online (Sandbox Code Playgroud)
我怎样才能抓住这个?
我是 MVC 新手。我想将 HTML 表数据添加到 JSON 数组对象中。我想使用 ajax post 将该对象传递给 Action。
我无法将 html 行转换为 json 对象。任何人都可以解决同样的问题吗?这将是值得赞赏的
提前致谢
因此,我在 ASP.Net MVC 5 中有一个类似 wordpress 的网站,我可以在其中为我的客户创建网站。现在客户的一个网站需要一个文本框来添加html内容。因此,我添加了[AllowHTML]该文本框,这样我就能够成功地将文本框内容保存到数据库中。现在我的问题是如何在前端渲染。我的意思是我有一个模型属性
public string htmlcontent {get;set;}
我从数据库获得的价值是
<p>abc</p>。
现在在我的 cshtml 文件中渲染它的最佳方法是什么?如果我做类似的事情
@Model.htmlcontent
我的输出只是纯<p>abc</p>文本,但我希望 DOM 能够理解 html 内容和属性并相应地呈现它。
在我的表单中,我有两个被禁用的输入,因为用户必须使用我在视图上制作的键盘来填充它们。但是,当我提交表单时,对象到达时其参数为 0(因为它们是数字)。我知道它是禁用标签导致这种情况发生的,因为当我删除标签时,值会被初始化。
这些是我的输入:
<td>@Html.EditorFor(model => model.Cliente, new { htmlAttributes = new { disabled = "true" } })</td>
Run Code Online (Sandbox Code Playgroud)
我怎样才能禁用它们并同时将值发送到控制器?
我有一个我喜欢并且有效的日期选择器。它显示为一个与表单的其余部分一致的整洁的框,单击该框会提示一个日期选择器组件,当选择日期时,会填充一个文本框。
标记:
<div class="form-group">
<div id="datepicker-group" class="input-group date" data-date-format="dd/mm/yyyy">
<input class="form-control" name="data" type="text" />
<span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery
<script>
$(document).ready(function() {
$("#datepicker-group").datepicker({
format: "dd-M-yyyy",
todayHighlight: true,
autoclose: true,
clearBtn: true
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我还有一个正在构建的表单@Html.BeginForm,模型中的其他属性通过自由文本字段分配其值,@Html.TextBoxFor这很简单。如何将此日期选择器 div 放入可分配给我的StartDate属性的表单字段中?除了能够单击该框并弹出日期选择器组件的功能之外,我还想保留当前日期选择器框的外观和感觉。
asp.net-mvc-5 ×10
asp.net-mvc ×5
asp.net ×4
razor ×4
html ×3
jquery ×3
javascript ×2
arrays ×1
autocomplete ×1
forms ×1
html-table ×1
jquery-ui ×1
json ×1