【问题标题】:How can i make custom HTML Helper?如何制作自定义 HTML Helper?
【发布时间】:2019-09-12 12:49:47
【问题描述】:

我怎样才能像Html.CheckBoxFor()一样制作自定义HTML Helper 我制作依赖于数据库的动态表单输入, 所以我需要生成我的自定义 HTML 元素

我尝试通过 ajax request 返回 PartialView 并添加返回的 HTMLPartialViewDOM ,但根据服务器端需要更多时间

 $.ajax({
            type: "GET",
            url: "@Url.Action("FindTransactionForInternal", "Transactions")",
            contentType: 'application/json; charset=utf-8',
            dataType: 'html',
            data: { transId:transId },
            success: function (response) {
                $('#internaldetails').html(response);
           }
        });

【问题讨论】:

标签: javascript c# html asp.net-mvc razor


【解决方案1】:

这里是一个如何制作自定义 HTML Helper 的示例

public static class HelpersExtensions
{
    public static string CustomCheckBoxFor(this HtmlHelper helper, string target, string text)
    {
        return String.Format("<input type='checkbox' for='{0}'>{1}</input>", target, text);
    }
}

注意:Html helpers 不能从数据库中获取信息,只能使用传递参数的值。

可以做的是在控制器中获取信息并传递给模型,因此模型将参数传递给自定义html帮助器

【讨论】:

  • 复选框没有这样的 for 属性、结束标记或文本。此外,如果您不使用 html 帮助程序,您实际上应该只创建一个静态方法而不是您不使用的东西的扩展方法。最后,你几乎可以在方法中做任何你想做的事情,如果你愿意的话,你可以去数据库,它会非常昂贵,因为每次使用它都会调用数据库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多