C# DropDownListFor始终将null返回控制器
我的ViewModel如下所示:C# DropDownListFor始终将null返回控制器,c#,asp.net-mvc,C#,Asp.net Mvc,我的ViewModel如下所示: public class ProjectViewModel { public ICollection<Project> Projects { get; set; } } 最后,我的观点是: @using ServicePortal.Web.Controllers @model ServicePortal.Web.Models.ProjectViewModel @{ Layout = "~/Views/Shar
public class ProjectViewModel
{
public ICollection<Project> Projects { get; set; }
}
最后,我的观点是:
@using ServicePortal.Web.Controllers
@model ServicePortal.Web.Models.ProjectViewModel
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "Choose project";
}
<div class="pure-form pure-form-aligned">
@using (Html.BeginForm("ChooseProject", "Login", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="innerForm formgroup">
@Html.ValidationSummary(true, "", new { @class = "" })
@Html.DropDownListFor((model => model.Projects), new SelectList(Model.Projects,"ProjectKey", "ProjectName"))
<div class="row">
<button type="submit" class="button pull-right">Go on</button>,
</div>
</div>
}
</div>
@使用ServicePortal.Web.Controllers
@模型ServicePortal.Web.Models.ProjectViewModel
@{
Layout=“~/Views/Shared/_Layout.cshtml”;
ViewBag.Title=“选择项目”;
}
@使用(Html.BeginForm(“ChooseProject”、“Login”、FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true,“,new{@class=”“})
@DropDownListFor((model=>model.Projects),new SelectList(model.Projects,“ProjectKey”,“ProjectName”))
继续说,
}
dropdownlist中填充了正确的值,但我想将项目或带有ProjectKey的字符串返回给控制器。但是,当我提交表单并检查控制器中参数的值时,无论是在尝试返回项目时还是在尝试使用字符串时,它都始终为null。我没有发现任何错误。我做错了什么?试试这个:
public class ProjectViewModel
{
public string SelectedProjectKey { get; set; } // string may need to be int depending on what type ProjectKey is in your class
public ICollection<Project> Projects { get; set; }
}
您的控制器操作:
public ActionResult ChooseProject(ProjectViewModel model)
这将获得您在model.SelectedProjectKey中选择的任何项目的密钥,您可以在控制器chooseproject操作方法中使用该密钥来执行您想要执行的任何操作
@Html.DropDownListFor((model => model.SelectedProjectKey), new SelectList(Model.Projects,"ProjectKey", "ProjectName"))
public ActionResult ChooseProject(ProjectViewModel model)