为什么我抛出了类型'System.StackOverflowException'的异常。在我自己的htmlhelper?

时间:2017-11-17 13:20:59

标签: c# asp.net-mvc html-helper

我在asp.net mvc中写了htmlhelper for checkbox,但是当我想使用它时。它显示了一个例外。System.StackOverflowException' was thrown如何解决它。我还要如何将复选框值提交给htmlhelper in事实上,我想将值复选框提交给我的htmlhelper。

 public static class HelperUI
    {
        public static MvcHtmlString CheckBoxSimple(this HtmlHelper htmlHelper, bool IsCheck, string name, object htmlAttributes)
        {
            string checkBoxWithHidden = htmlHelper.CheckBoxSimple(IsCheck, name, htmlAttributes).ToHtmlString();
            string pureCheckBox = checkBoxWithHidden.Substring(0, checkBoxWithHidden.IndexOf("<input", 1));
            return new MvcHtmlString(pureCheckBox);
        }
    }




<div class="col-md-6">
    <div class="form-group row">
        status
        <div class="col-md-9">
            @Html.CheckBoxSimple(true, "Status", new { @class = "form-control", placeholder = "status" })

        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

StackOverflowException通常由无限循环或无限递归引起。

在你的情况下CheckBoxSimple无限期地调用自己:第一行调用CheckBoxSimple而不是CheckBox