Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# Can';无法获取所选下拉列表值以绑定到视图模型属性_C#_Asp.net Mvc_Asp.net Mvc 3_Viewmodel_Model Binding - Fatal编程技术网

C# Can';无法获取所选下拉列表值以绑定到视图模型属性

C# Can';无法获取所选下拉列表值以绑定到视图模型属性,c#,asp.net-mvc,asp.net-mvc-3,viewmodel,model-binding,C#,Asp.net Mvc,Asp.net Mvc 3,Viewmodel,Model Binding,将下拉列表的选定值绑定到视图模型中的正确属性时遇到问题。我看不出我做错了什么。我已经把代码放在下面,这应该有助于显示我在做什么。我省略了一些内容,例如视图模型的“AllFolders”属性的填充,因为它只是一个简单的列表,其中包含一个名为ImageGalleryFolder的对象 每次表单发回时,ParentFolderId属性都是空的。这让我发疯了,我已经浪费了很多时间试图解决它 有人能看出我做错了什么吗 这是视图模型 public class ImageGalleryFolderViewMo

将下拉列表的选定值绑定到视图模型中的正确属性时遇到问题。我看不出我做错了什么。我已经把代码放在下面,这应该有助于显示我在做什么。我省略了一些内容,例如视图模型的“AllFolders”属性的填充,因为它只是一个简单的列表,其中包含一个名为
ImageGalleryFolder
的对象

每次表单发回时,
ParentFolderId
属性都是空的。这让我发疯了,我已经浪费了很多时间试图解决它

有人能看出我做错了什么吗

这是视图模型

public class ImageGalleryFolderViewModel
{
    [Required]
    public string Title { get; set; }

    public int Id { get; set; }
    public string CoverImageFileName { get; set; }
    public HttpPostedFileBase UploadedFile { get; set; }
    public string ParentFolderId { get; set; }
    public IList<ImageGalleryFolder> AllFolders { get; set; } 
}

更改父文件夹ID的数据类型

public class ImageGalleryFolderViewModel
{
    [Required]
    public string Title { get; set; }

    public int Id { get; set; }
    public string CoverImageFileName { get; set; }
    public HttpPostedFileBase UploadedFile { get; set; }
    public int ParentFolderId { get; set; }
    public IList<ImageGalleryFolder> AllFolders { get; set; } 
}

更改父文件夹ID的数据类型

public class ImageGalleryFolderViewModel
{
    [Required]
    public string Title { get; set; }

    public int Id { get; set; }
    public string CoverImageFileName { get; set; }
    public HttpPostedFileBase UploadedFile { get; set; }
    public int ParentFolderId { get; set; }
    public IList<ImageGalleryFolder> AllFolders { get; set; } 
}

有关绑定下拉列表,请参阅下面的链接。这将对你很有帮助

如果不想在模型中为项目列表创建属性,也可以将其存储在ViewData或ViewBag中。请在下面找到示例代码

<%= Html.DropDownList("Category.CategoryId", new SelectList((
IEnumerable<ProductManagement.Models.Category>)ViewData["CategoryList"],
"CategoryId", "CategoryName"))%>

有关绑定下拉列表,请参阅下面的链接。这将对你很有帮助

如果不想在模型中为项目列表创建属性,也可以将其存储在ViewData或ViewBag中。请在下面找到示例代码

<%= Html.DropDownList("Category.CategoryId", new SelectList((
IEnumerable<ProductManagement.Models.Category>)ViewData["CategoryList"],
"CategoryId", "CategoryName"))%>

您正在为
ParentFolderId
创建一个空值的隐藏输入。这可能会覆盖DropDownList试图发布的值。删除此行:

@Html.HiddenFor(m => m.ParentFolderId)

您正在为带有空值的
ParentFolderId
创建一个隐藏输入。这可能会覆盖DropDownList试图发布的值。删除此行:

@Html.HiddenFor(m => m.ParentFolderId)

对于
ParentFolderId

public class ImageGalleryFolderViewModel
{
    [Required]
    public string Title { get; set; }

    public int Id { get; set; }
    public string CoverImageFileName { get; set; }
    public HttpPostedFileBase UploadedFile { get; set; }
    public int ParentFolderId { get; set; }
    public IList<ImageGalleryFolder> AllFolders { get; set; } 
}
其中之一是隐藏字段

@Html.HiddenFor(m => m.ParentFolderId)  
其次是选择元素

@Html.DropDownListFor(m => m.ParentFolderId, new SelectList(Model.AllFolders, "Id", "Title")) 
modelbinder将第一个匹配的元素值绑定到模型


您必须删除隐藏字段

您有两个元素用于
ParentFolderId

public class ImageGalleryFolderViewModel
{
    [Required]
    public string Title { get; set; }

    public int Id { get; set; }
    public string CoverImageFileName { get; set; }
    public HttpPostedFileBase UploadedFile { get; set; }
    public int ParentFolderId { get; set; }
    public IList<ImageGalleryFolder> AllFolders { get; set; } 
}
@Html.HiddenFor(m => m.ParentFolderId)  
其中之一是隐藏字段

@Html.HiddenFor(m => m.ParentFolderId)  
其次是选择元素

@Html.DropDownListFor(m => m.ParentFolderId, new SelectList(Model.AllFolders, "Id", "Title")) 
modelbinder将第一个匹配的元素值绑定到模型


您必须删除隐藏字段

是否可以在下拉列表的视图中至少显示您的代码是否可以在下拉列表的视图中至少显示您的代码
@Html.HiddenFor(m => m.ParentFolderId)