-1

私はこれらの方法を持っています:

 public static MvcHtmlString GetQTip(this HtmlHelper htmlHelper, string propertyName, string message, string propertyNameOverride = "", QTipPosition position = QTipPosition.Right, bool includeEvents = true, string title = "")
{
  string qtipPosition = String.Empty;

  switch (position)
  {
    case QTipPosition.Right:
      qtipPosition = "my: 'left center', at: 'right center'";
      break;
    case QTipPosition.Left:
      qtipPosition = "my: 'right center', at: 'left center'";
      break;
    case QTipPosition.Top:
      qtipPosition = "my: 'top middle', at: 'bottom middle'";
      break;
    case QTipPosition.Bottom:
      qtipPosition = "my: 'bottom middle', at: 'top middle'";
      break;
  }

  if (!String.IsNullOrWhiteSpace(propertyNameOverride))
    propertyName = propertyNameOverride;

  if (String.IsNullOrWhiteSpace(title))
    title = htmlHelper.Resource(Resources.Global.Title.Information);

  StringBuilder sb = new StringBuilder();
  sb.Append(String.Concat("$('#", propertyName, "').removeData('qtip').qtip({content: {text:"));
  sb.Append(String.Concat("'", message, "', title: { text: '", title, "', button: false }}, position: { ", qtipPosition, " }"));

  if (includeEvents)
    sb.Append(", show: { event: 'focus mouseenter', solo: true, ready: false }, hide: 'blur'");

  sb.Append(", style: { classes: 'ui-tooltip-shadow ui-tooltip-yellow' } });");

  return new MvcHtmlString(sb.ToString());
}

これをどのように呼びますか:

 <%: Html.GetQTip("training-module-name-container-" + module.CategoryId +"-" + module.TrainingModuleId, trainingModulePointsHintText, Zinc.Web.Extensions.QTipPosition.Bottom, true, Html.Resource(Resources.Training.Module.Completed.View.TrainingModulePoints))%>      

私はこれらのパラメータだけが欲しいですありがとう

4

1 に答える 1

1

問題は、途中でパラメータを省略できないことです。デフォルトのパラメータを使用できますが、除外するパラメータはリストの最後である必要があります。MSDNの説明については、こちらを参照してください。

問題を解決するには、いくつかのオプションがあります。

1)propertyNameOverride次のように、パラメーターを関数定義の最後のパラメーターにします。

public static MvcHtmlString GetQTip(this HtmlHelper htmlHelper, string propertyName, string message, QTipPosition position = QTipPosition.Right, bool includeEvents = true, string title = "", string propertyNameOverride = "") { 
    // do stuff
}

その後、問題なく除外できます。

2)パラメータを使用しますが、デフォルト値を次のように入力します。

<%: Html.GetQTip("training-module-name-container-" + module.CategoryId +"-" + module.TrainingModuleId, trainingModulePointsHintText, "", Zinc.Web.Extensions.QTipPosition.Bottom, true, Html.Resource(Resources.Training.Module.Completed.View.TrainingModulePoints))%>

3)必要なパラメーターのみを使用して別の関数を記述します。これにより、「空の」場所にあるデフォルトのパラメーターを使用して完全な関数が呼び出されます。

public static MvcHtmlString GetQTip(this HtmlHelper htmlHelper, string propertyName, string message, QTipPosition position = QTipPosition.Right, bool includeEvents = true, string title = "", string propertyNameOverride = "") { 
    return htmlHelper.GetQTip("training-module-name-container-" + module.CategoryId +"-" + module.TrainingModuleId, trainingModulePointsHintText, "", Zinc.Web.Extensions.QTipPosition.Bottom, true, Html.Resource(Resources.Training.Module.Completed.View.TrainingModulePoints))%>
}
于 2013-02-07T13:43:58.970 に答える