相关疑难解决方法(0)

ActionLink htmlAttributes

作品

<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?

建议?

asp.net-mvc actionlink html.actionlink asp.net-mvc-2

81
推荐指数
2
解决办法
14万
查看次数

为什么输入标签不允许直接在表单标签中?

我刚刚在http://w3fools.com/#html_forms上阅读了以下内容:

<input><form>HTML5之前,非块级元素(例如)在标记内部无效.

我从来没有听说过这些内容,我看到的每个基本HTML教程似乎都很好,将输入标签直接放在表单标签中.所以我的问题有三个部分:

  • 以上陈述是否合法?
  • 为什么会这样?(它只是一个疏忽,还是HTML规范的创建者试图通过创建此规则来防止特定问题?)
  • 使用输入构建表单的推荐方法是什么?(我们是否应该直接在表单标记内创建div或表?)

html w3c

9
推荐指数
2
解决办法
6828
查看次数

标签助手“输入”在元素的属性声明区域中不得包含 C#

我们在构建最近从 .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 版本中支持属性的可能新变化的问题)

model-view-controller razor asp.net-core-3.0

7
推荐指数
5
解决办法
3109
查看次数