Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Webmatrix检查项是否在集合中,返回布尔值 @{ Layout=“~/\u siteloayout.cshtml”; Page.Title=“培训”; var positionID=“”; positionID=Request.QueryString[“ID”]; var db=Database.Open(“培训”); var courselist=db.Query(“从课程中选择标题、ID”); var selectedCourses=db.Query(“从positioncourses中选择课程id,其中positionID=@0”,positionID); } 选择或取消选择此职位的课程: @foreach(课程列表中的var项目){ @项目名称 }_C#_Razor_Webmatrix - Fatal编程技术网

C# Webmatrix检查项是否在集合中,返回布尔值 @{ Layout=“~/\u siteloayout.cshtml”; Page.Title=“培训”; var positionID=“”; positionID=Request.QueryString[“ID”]; var db=Database.Open(“培训”); var courselist=db.Query(“从课程中选择标题、ID”); var selectedCourses=db.Query(“从positioncourses中选择课程id,其中positionID=@0”,positionID); } 选择或取消选择此职位的课程: @foreach(课程列表中的var项目){ @项目名称 }

C# Webmatrix检查项是否在集合中,返回布尔值 @{ Layout=“~/\u siteloayout.cshtml”; Page.Title=“培训”; var positionID=“”; positionID=Request.QueryString[“ID”]; var db=Database.Open(“培训”); var courselist=db.Query(“从课程中选择标题、ID”); var selectedCourses=db.Query(“从positioncourses中选择课程id,其中positionID=@0”,positionID); } 选择或取消选择此职位的课程: @foreach(课程列表中的var项目){ @项目名称 },c#,razor,webmatrix,C#,Razor,Webmatrix,上述代码块导致: 编译器错误消息:CS1973:'Stal.Pyto.Gual.InEdaby '没有适用的方法名为“Engy”,但似乎有一个扩展名的方法。不能动态扩展扩展方法。考虑动态参数或调用扩展方法而不使用扩展方法语法。“ 是什么导致了错误?我还不够高级,无法从错误消息本身进行解密。您使用了db.Query,db.Query返回一个项集合(IEnumerable),如果您试图返回一个结果,请将其更改为db.QuerySingle @{ Layout = "~/_Si

上述代码块导致:

编译器错误消息:CS1973:'Stal.Pyto.Gual.InEdaby '没有适用的方法名为“Engy”,但似乎有一个扩展名的方法。不能动态扩展扩展方法。考虑动态参数或调用扩展方法而不使用扩展方法语法。“


是什么导致了错误?我还不够高级,无法从错误消息本身进行解密。

您使用了db.Query,db.Query返回一个项集合(IEnumerable),如果您试图返回一个结果,请将其更改为db.QuerySingle

   @{ 
        Layout = "~/_SiteLayout.cshtml";
        Page.Title = "Training";
        var positionID = "";
        positionID = Request.QueryString["ID"];
        var db = Database.Open("Training");
        var courselist = db.Query("SELECT title, ID FROM courses");
        var selectedCourses = db.Query("SELECT course_id from positioncourses WHERE position_id = @0", positionID);
}
        <h1>Select or deselect courses for this position:</h1>
            @foreach(var item in courselist){
                <label for="courseID">
                    <input type="checkbox" name="courseID" value="@item.id" checked="@(selectedCourses.Contains(item.ID))" /> @item.title

                </label>
            }

该错误是由以下事实引起的:查询方法返回动态类型的集合,并且不能对动态类型使用扩展方法。您必须在编译时将动态强制转换为强类型。以下方面应起作用:

var selectedCourses = db.QuerySingle("SELECT course_id from positioncourses WHERE position_id = @0", positionID);
//和以前一样
var courselist=db.Query(“从课程中选择标题、ID”);
var selectedCourses=db.Query(“从positioncourses中选择课程id,其中positionID=@0”,positionID)。选择(c=>(int)c.courseID);
}
选择或取消选择此职位的课程:
@foreach(courselist.Select中的var项(i=>(int)i.ID)){
@courselist.First(c=>c.ID==item).title
}

请注意对
int
的强制转换,它将
selectedCourses
IEnumerable
转换为
IEnumerable
,并再次将
courselist
中的
id
标题
分开,以便将
int
int
进行比较@(selectedCourses.Contains(item.ID))“//应返回true或false,这将导致复选框被勾选或不被勾选。当我从value=“@item.ID”中删除.ID时,它工作正常。使用它时,抛出错误“'int'不包含'ID'的定义,并且找不到接受第一个'int'类型参数的扩展方法'ID'(是否缺少using指令或程序集引用?)。
    // as before
    var courselist = db.Query("SELECT title, ID FROM courses");
    var selectedCourses = db.Query("SELECT course_id from positioncourses WHERE position_id = @0", positionID).Select(c => (int)c.course_id);
}
<h1>Select or deselect courses for this position:</h1>
@foreach(var item in courselist.Select(i => (int)i.ID)){
    <label for="courseID">
        <input type="checkbox" name="courseID" value="@item.id" checked="@(selectedCourses.Contains(item))" /> @courselist.First(c => c.ID == item).title
    </label>
}