DropDownListから情報を取得し、SelectListItem"Value"をコントローラーの別のActionResultメソッドに投稿しようとしています。渡されるコントローラーは整数値を取り、それを別のクエリで使用します。
DropDownListを設定するための私のコントローラーメソッドは次のとおりです。
public ActionResult SelectCategory()
{
    var model = new TestTypesViewModel();
    var query = (from ab in db.Tbl_Admin_Batch
                 from ub in db.Tbl_Admin_User_Batch
                 where ub.User_Id == 45875 && ab.Batch_Id == ub.Batch_Id
                select ab).ToList();
    model.Test_Types = query.Select(c => new SelectListItem
        {
            Text = c.Batch_Name,
            Value = c.Batch_Id.ToString()
        }).ToList();
   return View(model);
TestTypesViewModelの私のViewModelは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace HFI_Assessment_Administration.ViewModels
{
    public class TestTypesViewModel
    {
        public int Batch_ID { get; set; }
        public string Test_Type { get; set; }
        public IEnumerable<SelectListItem> Test_Types { get; set; }
    }
}
私はMVCを初めて使用し、物事を単純にしようとしています。Batch_IDとTest_Typeが指定されていないことは知っていますが、現時点でそれらが必要かどうかはわかりません。
アドバイスや助けをいただければ幸いです。
編集:
これで、SelectCategoryのビューが次のようになりました。
@model HFI_Assessment_Administration.ViewModels.TestTypesViewModel
@{
    ViewBag.Title = "SelectCategory";
}
@using (Html.BeginForm("Practice", "WebFormUserList"))
{
    @Html.DropDownListFor(x => x.Batch_ID, Model.Test_Types)
    <input type="submit" />
} 
渡されるコントローラーは次のとおりです。
[HttpPost]
public ActionResult Practice(TestTypesViewModel model, int Parent_ID = 45875)
{
    var query = (from u in db.Users
                 join ur in db.User_Relationship on u.User_ID equals ur.Child_ID
                 join ub in db.Tbl_Admin_User_Batch on u.User_ID equals ub.User_Id
                 join ut in db.User_Tests on u.User_ID equals ut.User_ID into ps
                 from ut in ps.DefaultIfEmpty()
                 join lu in db.Lookups on u.First_LanguageID equals lu.LookupID
                 where ur.Parent_ID == Parent_ID && ub.Batch_Id == model.Batch_ID
                 group new { u, lu, ut } by new
                 {
                     u.User_ID,
                     u.Forename,
                     u.Surname,
                     u.Client_Code,
                     u.User_Name,
                     u.Password,
                     u.Email,
                     u.Gender,
                     u.Report_date,
                     u.EmailDate,
                     u.Job_Function,
                     lu.LookupValue
                 } into g
                 select new UserViewModel
                    {
                         User_ID = g.Key.User_ID,
                         Forename = g.Key.Forename,
                         Surname = g.Key.Surname,
                         Client_Code = g.Key.Client_Code,
                         User_Name = g.Key.User_Name,
                         Password = g.Key.Password,
                         Email = g.Key.Email,
                         Gender = g.Key.Gender,
                         Report_Date = g.Key.Report_date,
                         Email_Date = g.Key.EmailDate,
                         Test_Count = g.Count(p => p.ut.Test_ID != null),
                         Test_Completed = g.Count(p => p.ut.Completed != null),
                         Job_Function = g.Key.Job_Function,
                         Lookup_Value = g.Key.LookupValue
                     }).ToList();
        return View(query);
    }
実践の見方は次のとおりです。
@model IEnumerable<HFI_Assessment_Administration.ViewModels.UserViewModel>
@{
    ViewBag.Title = "ChildUsers";
}
<h2>Practice</h2>
<div>
    @{
        var grid = new WebGrid(Model);
    }
    @grid.GetHtml(
    tableStyle: "webgrid",
    headerStyle: "webgrid-header",
    footerStyle: "webgrid-footer",
    alternatingRowStyle: "webgrid-alternating-row",  
    selectedRowStyle: "webgrid-selected-row",
    rowStyle: "webgrid-row-style",
    columns: grid.Columns
    (
        grid.Column(columnName:"User_ID", header: "User ID", style: "text-align-center"),
        grid.Column(columnName:"Forename", header: "Forename", style: "text-align-center"),
        grid.Column(columnName:"Surname", header: "Surname", style: "text-align-center"),
        grid.Column(columnName:"Client_Code", header: "Client Code", style: "text-align-center"),
        grid.Column(columnName:"User_Name", header: "User Name", style: "text-align-center"),
        grid.Column(columnName:"Password", header: "Password", style: "text-align-center"),
        grid.Column(columnName:"Email", header: "Email", style: "text-align-center"),
        grid.Column(columnName:"Gender", header: "Gender", style: "text-align-center"),
        grid.Column(columnName:"Report_Date", header: "Report Date", style: "text-align-center"),
        grid.Column(columnName:"Email_Date", header: "Email Date", style: "text-align-center"),
        grid.Column(columnName:"Test_Count", header: "Count", style: "text-align-center"),
        grid.Column(columnName:"Test_Completed", header: "Completed", style: "text-align-center"),
        grid.Column(columnName:"Job_Function", header: "Job Function", style: "text-align-center"),
        grid.Column(columnName:"Lookup_Value", header: "Language", style: "text-align-center")
        )          
    )
</div>
グリッドの次のページに移動するか、グリッドを並べ替えるまでは、すべて問題ありません。エラーが発生した場合、「/」アプリケーションのサーバーエラー。リソースが見つかりません。