Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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# DropDownListFor始终将null返回控制器_C#_Asp.net Mvc - Fatal编程技术网

C# DropDownListFor始终将null返回控制器

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

我的ViewModel如下所示:

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)