MVC扩展方法无法将数据返回到View

时间:2017-07-17 19:57:08

标签: c# asp.net-mvc asp.net-mvc-4

我对MVC很新,并尝试使用我的第一个扩展方法来格式化电话号码。我之前在视图中有所有逻辑,我正在学习击败MVC的原理。因此,对于代码重用和遵循MVC标准实践,我正在尝试执行此扩展方法。

namespace Data.CustomHtmlHelper
{
public static class CustomerHelperHelper
 {
    public static string PhoneNumber(this HtmlHelper helper, string value)
    {
        value = new System.Text.RegularExpressions.Regex(@"\D")
            .Replace(value, string.Empty);
        value = value.TrimStart('1');
        if (value.Length == 7)
            return Convert.ToInt64(value).ToString("###-####");
        if (value.Length == 10)
            return Convert.ToInt64(value).ToString("###-###-####");
        if (value.Length > 10)
            return Convert.ToInt64(value)
                .ToString("###-###-#### " + new String('#', (value.Length - 10)));
        return value;
    }
 }
}

这个例子给我一个错误信息"该值不能为空"。

尝试编号2:

     public static string PhoneNumber(this HtmlHelper helper, string value)
    {

        if (!String.IsNullOrEmpty(value))
        {
            if (value != null && value.Length == 7)
                return Convert.ToInt64(value).ToString("###-####");
            if (value != null && value.Length == 10)
                return Convert.ToInt64(value).ToString("###-###-####");
            if (value != null && value.Length > 10)
                return Convert.ToInt64(value)
                    .ToString("###-###-#### " + new String('#', (value.Length - 10)));
        }

        else if (String.IsNullOrWhiteSpace(value))
        {
            return Convert.ToInt64(value).ToString("###-####");
        }
        return value;
    }

这将不会在“查看所有内容”中返回正确的电话号码值" - "。

尝试编号3:

       public static string PhoneNumber(this HtmlHelper helper, string value)
    {
        if (value != null && value.Length > 6)
            return "Invalid Phone Number";
        if (value != null && value.Length == 7)
            return Convert.ToInt64(value).ToString("###-####");
        if (value != null && value.Length == 10)
            return Convert.ToInt64(value).ToString("###-###-####");
        if (value != null && value.Length > 10)
            return Convert.ToInt64(value)
                .ToString("###-###-#### " + new String('#', (value.Length - 10)));
        return value;
    }

这不会在视图中返回任何内容。

为所有人使用相同的视图。

@using Data.CustomHtmlHelper

  <div class="col-md-4">                             
     @Html.PhoneNumber(Model.phone_no)
  </div>

0 个答案:

没有答案