Я получаю эту ошибку:
ошибка CS1973: 'System.Web.Mvc.HtmlHelper' не применимо метод с именем "Частичный", но, по-видимому, имеет метод расширения имя. Методы расширения не могут динамически отправляться. Рассматривать литье динамических аргументов или вызов метода расширения без синтаксис метода расширения. "}
Из того, что я читаю здесь Razor View Engine: дерево выражений не может содержать динамическую операцию, заключается в том, что это связано с использованием viewbag (?), который я действительно используя сеанс.
Это моя веб-форма:
@using SuburbanCustPortal.MiscClasses
@{
ViewBag.Title = "Account Screen";
}
<h2>AccountScreen</h2>
<div class="leftdiv">
<fieldset>
<legend>Customer Info</legend>
@Html.Partial("CustomerInfo")
</fieldset>
<fieldset>
<legend>Delivery Address</legend>
@Html.Partial("DeliveryAddress")
</fieldset>
<fieldset>
<legend>Delivery Info</legend>
@Html.Partial("DeliveryInfo")
</fieldset>
</div>
<div class="rightdiv">
<fieldset>
<legend>Balance</legend>
@Html.Partial("AccountBalance")
</fieldset>
@if (SessionHelper.ShowPaymentOptions || SessionHelper.ShowHistory)
{
<fieldset>
<legend>Account Options</legend>
<br/>
@using (Html.BeginForm("AccountScreenButton", "Customer", FormMethod.Post))
{
<div class="sidebysidebuttons">
<div class="box">
@if (SessionHelper.ShowHistory && SessionHelper.ShowAccountScreenPaymentButton)
{
<button class="sidebysidebutton1" name="options" value="payment">Make a Payment</button>
<button class="sidebysidebutton2" name="options" value="activity">Display Activity</button>
}
else
{
if (SessionHelper.ShowAccountScreenPaymentButton)
{
<button class="leftpaddedsinglebutton" name="options" value="payment">Make a Payment</button>
}
if (SessionHelper.ShowHistory)
{
<button class="leftpaddedsinglebutton" name="options" value="activity">Display Activity</button>
}
}
</div>
</div>
}
</fieldset>
}
<fieldset>
<legend>Billing Info</legend>
@Html.Partial("BillingInfo", Model)
</fieldset>
</div>
Это часть моего SessionHelper, чтобы дать вам представление:
public static CustomerData CustomerSessionData
{
get
{
try
{
return (CustomerData) HttpContext.Current.Session["CustomerSessionData"];
}
catch (Exception)
{
return null;
}
}
set { HttpContext.Current.Session["CustomerSessionData"] = value; }
}
public static bool ShowPaymentTab
{
get { return HttpContext.Current.Session["ShowPaymentTab"].ToBool(); }
set { HttpContext.Current.Session["ShowPaymentTab"] = value; }
}
Я не уверен, что проблема была в форме с тех пор, как я поставил точку останова в форме, она не останавливается на ней.
У меня есть два вопроса:
- Как отладить, где проблема находится в форме?
- Могу ли я использовать класс в качестве сеанса и ссылаться на него в форме? Я предполагаю, что это проблема.