我有一个使用Razor View Engine的ASP .NET MVC 4.5.我还添加了Bootstrap.
我的疑问是:如何根据@ Html.ValidationSummary()动态显示或隐藏div? - 最好没有JQuery.
在我的具体情况中,有一个包含几个输入的表单.每当验证错误发生时(例如,空字段),我打算在单个div中显示相关的错误消息.
<div class="alert alert-danger">
@Html.ValidationSummary();
</div>
Run Code Online (Sandbox Code Playgroud)
提前致谢.
asp.net asp.net-mvc html-helper asp.net-mvc-4 twitter-bootstrap
我正在尝试在MVC 6中创建自定义标记帮助程序,但无法使其工作.
这是我在Web应用程序项目中定义的演示标记助手类.
namespace Microsoft.AspNet.Mvc.TagHelpers
{
[TargetElement("demo", Attributes = CustomAttributeName)]
public class DemoTagHelper : TagHelper
{
private const string CustomAttributeName = "asp-custom";
[HtmlAttributeName(CustomAttributeName)]
public string Custom { get; set; }
public string Value { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "div";
output.Attributes["foo"] = "bar";
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在我的观点中使用它的方式:
<demo asp-custom="hello world!">
Please work this time :)
</demo>
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西.删除了TargetElement属性或更改了命名空间.没有什么变化......结果仍然相同.
顺便说一句,我的Microsoft.AspNet.Mvc.TagHelpers版本是6.0.0-beta4.
也许我必须在某个地方注册我的标签助手?我查看了MVC源代码,他们没有在任何地方引用自己的标记助手.所以我认为不需要注册.
这里的问题在哪里?
我有一个包含各种行的表,每行对应一个ID.对于每一行,我都有EDIT选项,选中该选项后,用户可以在" Edit.chtml "字段中查看与该ID对应的默认值,然后通过删除默认值并输入新条目来更新它.保存它.
在' Edit.chtml '中,我有一个"MANAGERS"字段,我需要填充一个名称下拉列表,其中显示的默认值/选定值对应于从表中选择编辑操作的行的ID.我正在使用viewBag,但我的问题是下拉列表始终显示列表中的第一项而不是选定的值. 请参阅下面的代码.
Controller:
//
// GET: /ManagersNAMES/Edit/5
public ActionResult Edit(int id)
{
using (var db = new InpEntities())
{
var list_managers = (from x in db.TABLE_MANAGERS
select new TABLE_MANAGERSDTO
{
ID = x.ID,
NAME = x.NAME,
}).OrderBy(w => w.NAME).ToList();
ViewBag.managers = new SelectList(list_managers, "ID", "NAME", id);
return View();
}
}
public class TABLE_MANAGERSDTO
{
public string NAME { get; set; }
public int ID { get; set; }
}
//
// POST: /ManagersNAMES/Edit/5
[HttpPost] …Run Code Online (Sandbox Code Playgroud) 我是ASP.Net/MVC的新手.我创建了一个我从模型中填充的视图.我正在为模型中的每个项创建一行,以显示模型项的属性/属性.
其中一个成员是bool,名字是Staged.在视图中我想将其显示为是(如果为true)或否则显示为否.用户只能阅读它,所以简单的文字是/否就足够了.
我在cshtml中使用以下代码
<td>
@Html.DisplayFor(modelItem => item.Staged)
</td>
Run Code Online (Sandbox Code Playgroud)
但是,这会在该位置显示一个复选框,如何将其显示为是/否?
谢谢,
一般问题概述:我有一个复合项的create\edit视图,我从下拉列表中为组件选择了很多选项.我希望能够添加或编辑在下拉列表中选择的特定组件.
这是一个简短但完整的例子:
假设我有一个Car模型
public class Car
{
public int Id { get; set; }
public string Name { get; set; }
public BodyStyle BodyStyle { get; set; }
public int BodyStyleId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
BodyStyle是Car聚合的一个组成部分,定义如下:
public class BodyStyle
{
public int Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个控制器动作来创建一辆汽车,
public ActionResult CreateCar()
{
//BodyStyles is a mock property with all hardcoded BodyStyles, just for demo …Run Code Online (Sandbox Code Playgroud) 我从NuGet安装了twitter bootstrap,然后我发现我不再需要它了.仅仅为了文件大小,我想从我的项目文件夹中删除这个包文件.
如何在不删除重要文件的情况下实现此目的?
我有一个带有两个下拉列表的WebForm,其中第二个列表的内容取决于第一个.

因此,如果用户更改类别,则需要使用子类别列表填充第二个下拉列表.
这听起来像是AutoPostBack的典型工作.
但是,AutoPostBack存在一些问题:如果列表未被打开,并且用户使用键盘进行选择,则在第一次击键后立即发生回发.这可以防止用户使用向下箭头向下滚动列表,或键入类别的名称.
这种情况发生在Chrome和IE和Opera中,但不适用于Firefox.Firefox onchange只有在离开控件时才会触发事件(Tabbing到下一个控件),就像列表被打开时一样,这就是我希望其他浏览器也能做到的事情.
任何解决方案我怎么能做到这一点?
我试图删除AutoPostBack属性并使用onblur,但显然该页面与AutoPostBack的工作方式不同,因为浏览器开始抱怨Javascript错误.
既然我们都非常喜欢jsFiddle,那么这就是其中之一.它实际上没有做任何事情,但它可以证明问题.单击第一个下拉列表,然后再次单击以关闭列表.(当您使用Tab键在表单中导航时会发生这种情况:下拉列表无法打开.)现在键入一个字母或向下箭头.Firefox改变了当前的选择并等待你做其他事情,但Chrome和IE以及Opera都试图立即提交表格,结果非常好.
那我怎么能避免呢?请注意,仅仅改变小提琴可能还不够,它必须可以翻译回ASP.NET解决方案.
如何为此代码添加日期选择器:
<fieldset>
<legend>Search criteria</legend>
@Html.Label("StartDate", "Start Date:")
@Html.TextBox("StartDate")
@Html.Label("enddate", "End Date:")
@Html.TextBox("enddate")
<input type="submit" value="Apply" />
</fieldset>
Run Code Online (Sandbox Code Playgroud)
我想为startdate显示一个日期选择器,为结束日期显示一个.
谢谢
现在,我执行以下手动步骤在PC上运行ASP.NET网站:
如何编写一个同样的东西的批处理文件?最后一步(打开浏览器)是可选的,但至少我需要构建项目并在IIS express上启动它(或者在项目文件中配置的任何内容).
我有一组列表元素,我动态创建.这些列表元素中的每一个都包含一个输入文本,其值要传递给控制器.
<ul id="list"></ul>
<button id="add">Add</button>
<script>
var counter = 1;
$('#add').click(function () {
var text = '<input type="text" name="(what should I put here?)"></input>';
var li = '<li>' + text + '</li>';
$(li).appendTo('#list');
counter++;
return false;
});
</script>
Run Code Online (Sandbox Code Playgroud)
public IEnumerable<string> list {get; set;}
...
Run Code Online (Sandbox Code Playgroud)
如何隐式地将这些值绑定到我的ViewModel?我试图使用counter变量为每个创建的元素分配名称(如list[counter]),但在控制器端list,我的ViewModel上的变量仍然是空的.
asp.net ×9
asp.net-mvc ×8
c# ×7
razor ×2
autopostback ×1
batch-file ×1
datepicker ×1
html ×1
html-helper ×1
iis ×1
iis-express ×1
jquery ×1
nuget ×1
tag-helpers ×1
webforms ×1