作品
<a href="@Url.Action("edit", "markets", new { id = 1 })"
data-rel="dialog" data-transition="pop" data-icon="gear" class="ui-btn-right">Edit</a>
Run Code Online (Sandbox Code Playgroud)
不工作 - 为什么?
@Html.ActionLink("Edit", "edit", "markets", new { id = 1 }, new {@class="ui-btn-right", data-icon="gear"})
Run Code Online (Sandbox Code Playgroud)
看来你不能把像data-icon ="gear"这样的东西传递给htmlAttributes?
建议?
我刚刚在http://w3fools.com/#html_forms上阅读了以下内容:
<input>在<form>HTML5之前,非块级元素(例如)在标记内部无效.
我从来没有听说过这些内容,我看到的每个基本HTML教程似乎都很好,将输入标签直接放在表单标签中.所以我的问题有三个部分:
我们在构建最近从 .NET Core 2.2 迁移到 3.0 的 ASP.NET Core MVC 应用程序时遇到以下错误:
标签助手“input”(或“textarea”或任何其他)在元素的属性声明区域中不得包含 C#。
我们使用 Razor@functions返回 HTML 属性内容以解决该问题,但是当您使用变量从函数中返回它而没有任何额外逻辑(函数dummy(htmlAttributeContent)返回htmlAttributeContent)时,它看起来很难看
@{
var roAttrHTML = "";
if (!user.GotAccessToken("someToken")) {
roAttrHTML = " readonly=\"readonly\" ";
}
}
<textarea class="testClass" asp-for="testId" @readonlyAttribute>@Model.Id</textarea>
Run Code Online (Sandbox Code Playgroud)
实际上我们得到了错误
标签助手“textarea”在元素的属性声明区域中不得包含 C#。
当编译我们的 ASP.NET Core MVC 应用程序时,我们需要获取方法(不@functions使用更好),这将为我们提供一种克服该问题的方法(因为我们有很多具有类似逻辑的页面,我们需要触摸一次并避免任何可能的在未来的 .NET Core 版本中支持属性的可能新变化的问题)