Чтобы получить счетчик записанных записей, введите или разрешите IRepository<Submission>
и используйте метод Count()
, чтобы подсчитать все предметы. Обратите внимание, что метод Count()
принимает выражение, которое позволяет фильтровать, например, имя формы. Для справки, это то, что Submission
класс выглядит следующим образом:
namespace Orchard.DynamicForms.Models {
public class Submission {
public virtual int Id { get; set; }
public virtual string FormName { get; set; }
[StringLengthMax]
public virtual string FormData { get; set; }
public virtual DateTime CreatedUtc { get; set; }
}
}
Если у вас есть IRepository<Submission>
, это то, как вы бы перечесть все представленные в форме, называемой «MyForm»:
var count = submissionRepository.Count(x => x.FormName == "MyForm");
Если вы не имеет контроллера или настраиваемую часть или что-нибудь, чтобы придать эту IRepository в, то вы могли бы решить хранилище непосредственно формируют ваш взгляд, как это:
@{
var submissionRepository = WorkContext.Resolve<IRepository<Submission>>();
var submissionCount = submissionRepository.Count(x => x.FormName == "MyForm");
}
Убедитесь, импортировать соответствующие пространства имен:
Orchard.DynamicForms.Models
для Submission
Orchard.Data
для IRepository<T>
Однако, если вам нужно отобразить этот номер в нескольких местах, то лучше создать форму, так что вы можете его повторно использовать. Еще лучше было бы не разрешать репозиторий непосредственно из шаблона формы, а через IShapeTableProvider
. Основная причина этого становится ясна, когда вы начинаете переопределять свой шаблон формы или начинаете предоставлять альтернативы формы, причем в обоих случаях у вас будет повторяющаяся логика во всех ваших шаблонах форм, что, конечно же, не очень сухо. И есть более философская проблема разделения проблем: вам не нужен код доступа к данным в ваших представлениях. Скорее, используйте этот код от поставщика контроллера, драйвера или таблицы форм.
Большое спасибо Спайку, вы спасли мой день! –
Вам следует предоставить ответ;) –
Мне жаль, что я нажал кнопку полезной кнопки, но без достаточной репутации. –