Я боролся с тем, чтобы получить небольшую работу. Я хочу показать флажок для определенного поля в моей модели. Моя точка зрения имеет IEnumerable как @model:CheckBoxFor в webgrid с моделью IEnumerable <T> и T.boolValue
@model IEnumerable<DFIMAX_MVC4.NCSJServices.AxdEntity_LedgerJournalTrans>
@{
ViewBag.Title = "ledgerJournalTrans";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>
Sagslinjer</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<div>
@{
var grid = new WebGrid(source: Model, defaultSort: "Name");
var cols = grid.Columns(
grid.Column(header: "", style: "ColPost", format: (item) => item.GetSelectLink("Bogfør")),
grid.Column(header: "", style: "ColDelete", format: (item) => @Html.ActionLink("Slet", "Delete", new { id = item.RecId })),
grid.Column(header: "", style: "ColEdit", format: (item) => @Html.ActionLink("Ret", "Edit", new { id = item.RecId })),
grid.Column("NCPosted", style: "ColPosted", header: "Bogført", format: (item) => @Html.CheckBoxFor(item.NCPosted)),
grid.Column("TransDate", style: "ColDate", header: "Dato", format: (item) => item.TransDate != null
? item.TransDate.ToString("dd-mm-yyyy") : ""),
grid.Column("NCCaseNumber", style: "ColCase", header: "Sag"),
grid.Column("Approver", style: "ColInitials", header: "Init."),
grid.Column("AccountType", style: "ColAccountType", header: "Type"),
grid.Column("LedgerDimension.DisplayValue", header: "Part/Konto", style: "ColAccount"),
//grid.Column("Art", header: "Art"),
grid.Column("Txt", style: "ColTxt", header: "Reference"),
grid.Column("Voucher", style: "ColVoucher", header: "Bilag"),
//grid.Column("AmountCurDebit", header: "Debit", format: (item) => string.Format("{0:C}", item.AmountCurDebit)),
//grid.Column("AmountCurCredit", header: "Kredit", format: (item) => string.Format("{0:C}", item.AmountCurCredit))
grid.Column(columnName: "Amount", header: "Beløb", style: "ColAmount",
format: (item) => string.Format("{0:C}", (item.AmountCurDebit != null ? item.AmountCurDebit : 0) - (item.AmountCurCredit != null ? item.AmountCurCredit : 0)))
);
}
@grid.Table(
columns: cols,
footer: @<table class="footer">
<tr>
<td class="ColPost">
Total
</td>
<td class="ColDelete">
</td>
<td class="ColEdit">
</td>
<td class="ColPosted">
</td>
<td class="ColApproved">
</td>
<td class="ColDate">
</td>
<td class="ColCase">
</td>
<td class="ColInitials">
</td>
<td class="ColAccountType">
</td>
<td class="ColAccount">
</td>
<td class="ColTxt">
</td>
<td class="ColVoucher">
</td>
<td class="ColAmount">
Totalbeløb
</td>
</tr>
</table>,
tableStyle: "TransListTable",
headerStyle: "TranslistHeader",
footerStyle: "TransListFooter",
alternatingRowStyle: "TransListAlternatingRow",
selectedRowStyle: "TransListSelectedRow",
rowStyle: "TransListRow")
</div>
Проблема эта линия:
grid.Column("NCPosted", style: "ColPosted", header: "Bogført", format: (item) => @Html.CheckBoxFor(item.NCPosted)),
Ошибка производства заключается в следующем:
Компилятор Сообщение об ошибке: CS1973: «System .Web.Mvc.HtmlHelper> 'не имеет применимого метода с именем «CheckBoxFor», но по этому имени имеет метод расширения. Методы расширения не могут динамически отправляться. Рассмотрите возможность использования динамических аргументов или вызова метода расширения без синтаксиса метода расширения.
Почему это, что на моих других строках формат: (item) => работает, но не на этом флажке?
Я также попытался:
grid.Column("NCPosted", style: "ColPosted", header: "Bogført", format: (item) => @Html.CheckBoxFor((bool)item.NCPostedValue)),
Где ошибка производства заключается в следующем:
Компилятор Сообщение об ошибке: CS1928: 'System.Web.Mvc.HtmlHelper>' не содержит определения для 'CheckBoxFor' и лучшей перегрузки методы расширения 'System.Web.Mvc.Html.InputExtensions.CheckBoxFor (System.Web.Mvc.HtmlHelper, System.Linq.Expressions.Expression>)' имеют некоторые недопустимые аргументы
Любая помощь будет высоко оценена.
С наилучшими пожеланиями,
Затем говорит: Compiler Сообщение об ошибке: CS0136: локальная переменная с именем «пункт 'не может быть объявлен в этой области, потому что это придало бы значение «item», которое уже используется в «родительской или текущей» области, чтобы обозначить что-то еще. –
Попробуйте «InputExtensions.CheckBoxFor()» – YD1m
Теперь он: сообщение об ошибке компилятора: CS1501: перегрузка для метода CheckBoxFor не принимает 1 аргумент. –