我需要帮助ASP.NET Core中的select标签助手.
我有一个员工列表,我正在尝试绑定到选择标记帮助程序.我的员工在一个List<Employee> EmployeesList
和选定的价值将进入EmployeeId
财产.我的视图模型如下所示:
public class MyViewModel
{
public int EmployeeId { get; set; }
public string Comments { get; set; }
public List<Employee> EmployeesList {get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的员工类看起来像这样:
public class Employee
{
public int Id { get; set; }
public string FullName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何告诉我的选择标记助手在下拉列表中Id
显示时使用该值作为值FullName
?
<select asp-for="EmployeeId" asp-items="???" />
Run Code Online (Sandbox Code Playgroud)
我很感激这方面的一些帮助.谢谢.
我对ASP.NET MVC 1-5有很多经验.现在我学习ASP.NET Core MVC并且必须将参数传递给页面中的链接.例如,我有以下Action
[HttpGet]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
Run Code Online (Sandbox Code Playgroud)
如何使用标记帮助程序实现此操作的链接?
<a asp-controller="Product" asp-action="GetProduct">ProductName</a>
Run Code Online (Sandbox Code Playgroud) 在指定asp-controller
和asp-action
链接时,传递id属性的语法是什么?
例如,如果我想链接到给定对象的编辑URL,则所需的URL将是/user/edit/5
例如.
有没有一种方法可以使用TagHelper实现这一目标,还是我们仍然需要回归@Html.ActionLink()
?
在asp.net mvc中你可以使用:
@Html.DropDownListFor(model => model.Category, ViewBag.Category as IEnumerable<SelectListItem>, "-- SELECT --", new { @class = "form-control" })
Run Code Online (Sandbox Code Playgroud)
使用asp.net 5,如何 在taghelper中包含default或null值( - SELECT - ):
<select asp-for="Category" asp-items="@ViewBag.Category" class="form-control"></select>
Run Code Online (Sandbox Code Playgroud) 我没有在ASP.NET 5 MVC 6中看到任何用于单选按钮的标记助手.在我需要使用单选按钮的情况下,处理表单元素的正确方法是什么?
为了显示集合中的项目,我将为asp-for标签标签助手的属性提供什么?下面的代码生成编译错误.
@foreach (var item in Model)
{
<label asp-for="item.BookingCode"></label>
}
Run Code Online (Sandbox Code Playgroud) 我想启用或禁用textarea取决于从模型中评估的条件,我正在使用textarea标记帮助器.换句话说,这样的事情:
<textarea asp-for="Doc" @(Model.MustDisable ? "disabled" : "")></textarea>
Run Code Online (Sandbox Code Playgroud)
但是我得到了以下设计时错误:标签帮助器'textarea'在元素的属性声明区域中不能有C#.
然后我尝试了:
<textarea asp-for="Doc" disabled='@(Model.MustDisable ? "disabled" : "")'></textarea>
Run Code Online (Sandbox Code Playgroud)
它没有显示任何设计时错误但它呈现如下:
Model.MustDisable==true
渲染disabled='disabled'
和Model.MustDisable==false
渲染disabled
.因此,文本区域将始终被禁用.
然后我尝试(删除's):
textarea asp-for="Doc" disabled=@(Model.MustDisable ? "disabled" : "")></textarea>
Run Code Online (Sandbox Code Playgroud)
它没有显示任何设计时间错误,但它呈现与前一个相同.
我怎样才能以正确的方式实施?
我最近遇到了一种情况,我想在标签助手中使用标签助手.我环顾四周,找不到其他人试图这样做,我使用的是一个糟糕的惯例,还是我缺少文档?
防爆.Tag Helper A输出包含另一个标记助手的HTML.
防爆.
[HtmlTargetElement("tag-name")]
public class RazorTagHelper : TagHelper
{
public override void Process(TagHelperContext context, TagHelperOutput output)
{
StringBuilder sb = new StringBuilder();
sb.Append("<a asp-action=\"Home\" ");
output.Content.SetHtmlContent(sb.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让我<a asp-action> </a>
从C#处理标签助手?或者使用标记帮助程序重新处理输出HTML?
Tag Helpers是ASP.NET中HTML Helpers的一个很好的替代品.代码在使用时更容易阅读.据我所知,它们可以在ASP.NET Core(以前版本ASP.NET 5
)中使用MVC 6
.
是否可以使用标签助手ASP.NET 4.x MVC 5
?如果是这样,那我该怎么做呢?
如果没有,有没有办法编写代码来创建自己的标签助手ASP.NET 4.x MVC 5
?
我遇到了.NET核心和标记助手的问题.当我输入asp-for时,颜色编码和智能感知不显示或被注册.我已经尝试在单独的实例中创建一个新的解决方案,验证了intellisense的工作原理,然后将project.json复制到没有工作智能感知/颜色编码的项目中,并且它不能解决问题.
这是我的project.json
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
"version": "1.0.0-preview2-final",
"type": "build"
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
}, …
Run Code Online (Sandbox Code Playgroud) tag-helpers ×10
asp.net-core ×5
c# ×5
asp.net-mvc ×3
asp.net ×2
collections ×1
intellisense ×1
json ×1
razor ×1