小编evi*_*ise的帖子

ASP.NET,Kendo UI,CS1660:无法将lambda表达式转换为'string'类型

解决方案在底部

我一直在努力通过Kendo.UI网格查看我的数据几天,猜测我无法理解如何做到这一点的基本概念,因为我是aspnet的新手以及所有这些东西.

Index.cshtml:

 @using Kendo.Mvc.UI
 @using System.Linq;


    @(Html.Kendo().Grid<CardsDemo.Models.CardsViewModel>()
    .Name("Grid")
    .Columns(columns =>
    {
    columns.Bound(p => p.Name).Title("Card ID").Width(130);
    columns.Bound(p => p.State).Title("State").Width(130);
    columns.Bound(p => p.ExpirationDate).Title("Expiration Date").Width(130);
})
.Pageable()
.Sortable()
.Scrollable(scr => scr.Height(430))
.Filterable()
.DataSource(dataSource => dataSource
    .Ajax()
    .PageSize(20)
    .ServerOperation(false)  
    .Read(read => read.Action("GetCards", "Home"))   
 ).Render()
)
Run Code Online (Sandbox Code Playgroud)

HomeController.cs:

...
    [HttpGet]
        public ActionResult Index()
        {
            return View();
        }

    [HttpPost]
        public JsonResult GetCards([DataSourceRequest] DataSourceRequest request)
        {
            var cards = repository.GetAll();
            var cardsvm = new CardsViewModel(cards);
            return Json(cardsvm.GetCards.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }
...
Run Code Online (Sandbox Code Playgroud)

项目构建没有错误,但网页说:

Server Error in '/' Application.

    Compilation …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc lambda kendo-grid

6
推荐指数
1
解决办法
5069
查看次数

部署了另一个应用程序后无法找到CodeDom提供程序

我在IIS 7.5下的站点中部署了两个Web应用程序

site.com/myApp site.com/anotherMyApp

现在另一个开发者将他们的应用程序部署为root应用

site.com/

现在,当我访问site.com/myApp/anotherMyApp它抛出:

无法找到CodeDom提供程序类型"Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,Microsoft.CodeDom.Providers.DotNetCompilerPlatform,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35".

来源错误:

Line 54:   <system.codedom>
Line 55:     <compilers>
Line 56:       <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
Line 57:       <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
Line 58:     </compilers>
Run Code Online (Sandbox Code Playgroud)

源文件:C:\ inetpub\wwwrootprettysite\THEIR APPLICATION\web.config

问题

为什么会这样?
为什么应用程序的webconfig中存在"源错误" 以及它如何影响我的应用程序?
如何在不破坏应用程序的情况下修复应用程序?

澄清 :

  • 应用程序层次结构正确,其应用程序应
    安装在root中.
  • 安装的.NET框架是4.5.2
  • 他们的应用程序是使用在bin/roslyn中提供的Roslyn编译器
  • 我的应用程序web.configs没有任何<system.codedom>部分.

asp.net aspnet-compiler iis-7.5 roslyn

5
推荐指数
1
解决办法
7374
查看次数

为什么sum(//*)会在这个xml上返回这个答案?

这是xml

<a><b>2</b><c>3</c></a>
Run Code Online (Sandbox Code Playgroud)

这是XPath查询

sum(//*)
Run Code Online (Sandbox Code Playgroud)

这产生以下结果:

Type: Num
Value : 28.0000
Run Code Online (Sandbox Code Playgroud)

这是XPath 1.0
请解释类型转换(一步一步)

xpath

4
推荐指数
1
解决办法
28
查看次数

为什么这个素数查找代码在迭代中产生不同的结果?

我有一个简单的代码,可以找到1到100000之间的所有素数.

问题是,这不准确.有9592个素数在1到100000之间,但我得到的值从9588到9592.代码是:

List<bool> result = new List<bool>();
Stopwatch watch = Stopwatch.StartNew();
List<Task> tasks = new List<Task>();
for (ulong i = 1; i < 100000; i++)
{


    tasks.Add(Task.Factory.StartNew(number =>
    {
        var y = (ulong)number;
        if (y == 1) return false;
        if (y == 2) return true;
        for (ulong j = 3; j < y; j++)
        {
            if (y % j == 0)
                return false;
        }
        return true;
    }, i).ContinueWith(x => result.Add(x.Result))
        );
}

Task.WaitAll(tasks.ToArray());

watch.Stop();
Console.WriteLine("done in {0}, primes {1}", watch.ElapsedMilliseconds, …
Run Code Online (Sandbox Code Playgroud)

c# task

2
推荐指数
1
解决办法
130
查看次数

在循环中使用Task.Factory.StartNew

我试图掌握.NET中的多线程编程.

我想在for循环中创建100个任务,每个任务将睡眠1秒然后输出它创建的i和它的托管线程ID.完成所有任务后,我想输出经过的总时间.

所以我正在运行这个简单的代码

    private static void Main(string[] args)
    {
        List<Task> tasks = new List<Task>();

        for (int i = 0; i < 100; i++)
        {
            tasks.Add(Task.Factory.StartNew(() =>
            {
                Thread.Sleep(1000);
                Console.WriteLine(i.ToString() + "  " + Thread.CurrentThread.ManagedThreadId);
            }));
        }
        Stopwatch watch = new Stopwatch();

        watch.Start();
        var final = Task.Factory.ContinueWhenAll(tasks.ToArray(), doneTasks =>
        {
            watch.Stop();
            Console.WriteLine("done in {0}", watch.Elapsed);
        });
        Console.ReadKey();
    }
Run Code Online (Sandbox Code Playgroud)

我得到的输出:

100  24
100  23
...
100  14
100  25
done in 00:00:12.0044853
Run Code Online (Sandbox Code Playgroud)

我不明白为什么所有的我都是一样的,为什么100?直觉上我希望它们是0~99,但不是全部100.

c# multithreading task

1
推荐指数
1
解决办法
1775
查看次数