Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何制作自定义HTML助手?_Javascript_C#_Html_Asp.net Mvc_Razor - Fatal编程技术网

Javascript 如何制作自定义HTML助手?

Javascript 如何制作自定义HTML助手?,javascript,c#,html,asp.net-mvc,razor,Javascript,C#,Html,Asp.net Mvc,Razor,如何创建自定义HTML帮助程序,如HTML.CheckBoxFor() 我根据数据库进行动态表单输入, 所以我需要生成我的自定义HTML元素 我尝试通过ajax请求返回PartialView,并添加返回的 HTML的PartialView到DOM,但这需要更多的时间,具体取决于服务器端 $.ajax({ type: "GET", url: "@Url.Action("FindTransactionForInternal", "Transactio

如何创建自定义HTML帮助程序,如
HTML.CheckBoxFor()
我根据数据库进行动态表单输入, 所以我需要生成我的自定义HTML元素

我尝试通过
ajax请求返回
PartialView
,并添加返回的
HTML
PartialView
DOM
,但这需要更多的时间,具体取决于服务器端

 $.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);
           }
        });

下面是一个如何制作自定义HTML助手的示例

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);
    }
}
公共静态类HelpersExtensions
{
公共静态字符串CustomCheckBoxFor(此HtmlHelper帮助程序、字符串目标、字符串文本)
{
返回String.Format(“{1}”,目标,文本);
}
}
注意:Html助手无法从数据库中获取信息,只能使用传递给trought参数的值


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

只需扩展htmlhelper:。如果它不需要html助手,那么只需创建您自己的静态方法:请求前请执行搜索的可能副本;我通过简单地搜索“CreateCustomHTMLHelper[asp.NETMVC]”发现了这一点。复选框中没有for属性、结束标记或类似的文本。此外,如果您没有使用html帮助程序,那么您实际上应该只创建一个静态方法,而不是未使用的扩展方法。最后,在这个方法中,你几乎可以做你想做的事情,因此如果你想的话,你可以去db,这将是非常昂贵的,因为每次你使用它的时候都要进行db调用