Also hatte ich viel Hilfe hier, um diese Methode zu erstellen und es zum Laufen zu bringen ... aber da dies jemand anderes ist, dachte ich, ich würde eine andere Frage daraus machen.Fehler beim Übergeben des Arrays in die Erweiterung HTML Helper
Zuerst hatte ich eine HTML-Hilfserweiterungsmethode, die funktionierte, indem ich eine zusätzliche Zeichenfolge übergab, um eine Berechtigung zu bestimmen, nach der ich in der Erweiterung suchte. Ich möchte jetzt in einer Reihe von Strings (Berechtigungen) und Schleife durch sie in der Methode zu übergeben, aber ich diesen Fehler:
CS1501: Keine Überladung für Methode ‚CheckBoxForWithPermission‘ dauert 4 Argumente
Hier ist der Aufruf des Helfers:
<%= Html.CheckBoxForWithPermission(m => m.Current, new string[] { Chatham.Web.Business.Definitions.Constants.PERMISSIONS.hasICAdvanced }, Chatham.Web.Business.Definitions.Constants.PERMISSIONS.hasICAdvanced, new { @class = "economicTextBox", propertyName = "Current", onchange = "UseCurrent();UpdateField(this);" })%>
Und hier ist die eigentliche Methode:
// CHECKBOX WITH PERMISSIONS
// WITHOUT -- READONLY
public static MvcHtmlString CheckBoxForWithPermission<TModel>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, bool>> expression,
string[] permissions,
object htmlAttributes
)
{
foreach (string permission in permissions)
{
if (Chatham.Web.UI.Extranet.SessionManager.PhysicalUser.IsInRole(permission))
{
// the user has the permission => render the checkbox
return htmlHelper.CheckBoxFor(expression, htmlAttributes);
}
}
// the user has no permission => render a readonly checkbox
var mergedHtmlAttributes = new RouteValueDictionary(htmlAttributes);
mergedHtmlAttributes["disabled"] = "disabled";
return htmlHelper.CheckBoxFor(expression, mergedHtmlAttributes);
}
ich so ein Idiot bin. Mein Kopf ist heute nicht im Spiel. Vielen Dank. – slandau