Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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# SelectList不工作(ASP.NET MVC)_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# SelectList不工作(ASP.NET MVC)

C# SelectList不工作(ASP.NET MVC),c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有控制器方法来呈现PartialView并在那里显示SelectList 这里是方法代码 public ActionResult AddProject() { ViewBag.Region = new SelectList(db.Regions, "Id", "Name").ToList(); return PartialView("/Partials/ProjectModalPartial"); } 下面是PartialView中的代码 &

我有控制器方法来呈现PartialView并在那里显示SelectList

这里是方法代码

public ActionResult AddProject()
    {
        ViewBag.Region = new SelectList(db.Regions, "Id", "Name").ToList();
        return PartialView("/Partials/ProjectModalPartial");
    }
下面是PartialView中的代码

 <div class="form-group">
    <label for="recipient-name" class="col-form-label">Выберите Город</label>
    @Html.DropDownList("Region", null, "XXXX", htmlAttributes: new { @class = "form-control", @id = "cityId"})
</div>

Выберите Город
@DropDownList(“Region”,null,“XXXX”,htmlAttributes:new{@class=“form control”,@id=“cityId”})
这就是我对它的看法

<div class="modal-body">
            @Html.Partial("~/Views/Manage/Partials/ProjectModalPartial.cshtml")
        </div>

@Html.Partial(“~/Views/Manage/Partials/ProjectModalPartial.cshtml”)
这是区域模型

public partial class Region
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Region()
    {
        this.Cities = new HashSet<City>();
    }

    public int Id { get; set; }
    public string Name { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<City> Cities { get; set; }
}
公共部分类区域
{
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”,“CA2214:DoNotCallOverridableMethodsInConstructors”)]
公共区域()
{
this.Cities=newhashset();
}
公共int Id{get;set;}
公共字符串名称{get;set;}
[System.Diagnostics.CodeAnalysis.SuppressMessage(“Microsoft.Usage”,“CA2227:CollectionPropertiesShouldBreadOnly”)]
公共虚拟ICollection城市{get;set;}
}
但我有这个错误

没有具有键“Region”的“IEnumerable”类型的ViewData项。描述:发生未处理的异常 在执行当前web请求期间。请检查 堆栈跟踪以获取有关错误及其位置的详细信息 源于代码

异常详细信息:System.InvalidOperationException:没有 具有键的“IEnumerable”类型的ViewData项 “区域”

源错误:

第6行:第7行:Бцццццццццццц1094 第8行:@Html.DropDownList(“Region”,null,“XXXX”, htmlAttributes:new{@class=“form control”,@id=“cityId”})行 9:第10行:

我怎样才能解决它。如果我在代码中有这个SelectList,为什么会出现?

您需要使用它来调用action方法,action将返回部分视图
Html.Partial
只是将视图呈现为Html而没有调用操作,因此
ViewBag.Region
没有预期的值:

@Html.Action("AddProject","Project")
假设控制器类名为
ProjectController


所以现在将要发生的是
Html.Action
将调用
AddProject
操作,并将
ActionResult
返回到我们调用的视图,并将呈现部分视图
ProjectModalPartial.cshtml

的Html,但在controller中我有ActionResult。为什么我需要使用
Html.Action
@eugene
Html.Action
将调用
AddProject
操作,并将
ActionResult
返回到我们调用的视图,并将呈现部分视图
ProjectModalPartial.cshtml
的Html。谢谢你为什么不买这样的东西@Html.DropDownListFor(x=>Model.Id,Model.Cities,htmlAttributes:new{@class=“form control”})您可能需要摆弄Model.Cities一点,但有些人认为这样应该可以。我在中不使用模型Views@Lidaranis