Невозможно использовать беглые лямбда-выражения HTML в представлении Spark.
-
20-09-2019 - |
Вопрос
Я пытаюсь использовать беглый HTML и механизм просмотра искр в своем приложении asp.net mvc.Я выбрал правильный базовый класс, добавил сборки, и когда я делаю это.TextBox("MyProperty"), он работает нормально.Однако я получаю следующее исключение, когда пытаюсь использовать this.TextBox(m=>m.MyProperty).Есть идеи, что может быть причиной этого?
Исключение:
Dynamic view compilation failed.
c:\Users\Midas\Documents\Visual Studio 2008 \Projects\ChurchMVC\ChurchMVC\Views\Poll\New.spark(6,31): error CS1660: Cannot convert lambda expression to type 'string' because it is not a delegate type
c:\Users\Midas\Documents\Visual Studio 2008 \Projects\ChurchMVC\ChurchMVC\Views\Poll\New.spark(7,28): error CS1660: Cannot convert lambda expression to type 'string' because it is not a delegate type
1 using MvcContrib.FluentHtml;
2 using System;
3 using System.Collections.Generic;
4 using System.Linq;
5 using System.Web.Mvc;
6 using System.Web.Mvc.Html;
7 using Microsoft.Web.Mvc;
8 using MvcContrib.FluentHtml.Elements;
9
10 namespace ChurchMVC.Controllers
11 {
12
13 [global::Spark.SparkViewAttribute(
14 TargetNamespace="ChurchMVC.Controllers",
15 Templates = new string[] {
16 "Poll\\New.spark",
17 "Layouts\\Application.spark",
18 "Layouts\\TwoColumn.spark",
19 "Layouts\\Base.spark"
20 })]
21 public class View6dda34d85cf14f8d8946e77056f25819 : Spark.Web.Mvc.SparkView<ChurchMVC.Models.ViewModels.PollViewModel>
22 {
23
24 public override System.Guid GeneratedViewId
25 { get { return new System.Guid("6dda34d85cf14f8d8946e77056f25819"); } }
26
27 string BuildArticleBreadcumb(ChurchDAL.Section section)
28 #line 10 "C:\Users\Midas\Documents\Visual Studio 2008\Projects\ChurchMVC\ChurchMVC\Views\Shared\_global.spark"
29 {
30 #line hidden
31 using(OutputScope(new System.IO.StringWriter()))
32 {
33 #line default
34 #line 11 "C:\Users\Midas\Documents\Visual Studio 2008 \Projects\ChurchMVC\ChurchMVC\Views\Shared\_global.spark"
35 if (section == null)
36 #line default
Решение
Если вы Действительно присвоен правильный базовый класс, то это исключение обычно означает, что в вашем лямбда-выражении имеется недопустимое свойство.Проверьте это дважды.На самом деле вы не показали ни свое искровое представление, ни код.Но, например, если у вас есть
public string Name { get; set; }
и использовать
this.Hidden(x => x.Name1)
вы получите эту ошибку (за которой последует еще одно исключение).
Не связан с StackOverflow