Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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# 从DropDownList获取字符串_C#_Asp.net Mvc_Asp.net Mvc 3_Drop Down Menu - Fatal编程技术网

C# 从DropDownList获取字符串

C# 从DropDownList获取字符串,c#,asp.net-mvc,asp.net-mvc-3,drop-down-menu,C#,Asp.net Mvc,Asp.net Mvc 3,Drop Down Menu,我有一个包含我的数据的XML文件,我想从dropdownlist保存选择字符串到这个XML。 我认为: @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset> <legend>MatchXML</legend> ... <div class="editor-label"> @Html.LabelFor(model => m

我有一个包含我的数据的XML文件,我想从dropdownlist保存选择字符串到这个XML。 我认为:

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
    <legend>MatchXML</legend>
    ...
    <div class="editor-label">
        @Html.LabelFor(model => model.Team)
    </div>
    <div class="editor-field">
        @Html.DropDownList("Team", (SelectList)ViewBag.Team, String.Empty)
        @Html.ValidationMessageFor(model => model.Team)
    </div>
    ...

    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
模型外观:

public class MatchXML
{
    public int MatchXMLID { get; set; }
    public string Opponent { get; set; }
    public DateTime MatchDate { get; set; }
    public string Result { get; set; }
    public Team Team { get; set; }
    public int Round { get; set; }
}

public class Team
{
    public int TeamID { get; set; }
    public string Name { get; set; }
    public virtual User Coach { get; set; }
    public virtual ICollection<Player> Players { get; set; }
}
公共类匹配xml
{
公共int MatchXMLID{get;set;}
公共字符串对手{get;set;}
公共日期时间匹配日期{get;set;}
公共字符串结果{get;set;}
公共团队{get;set;}
公共整数轮{get;set;}
}
公开课小组
{
public int TeamID{get;set;}
公共字符串名称{get;set;}
公共虚拟用户Coach{get;set;}
公共虚拟ICollection播放器{get;set;}
}
我试图做一些修改来做到这一点,但它不工作。我可以使用TeamID和saving ID来完成,但我需要xml保存字符串(团队名称)。谢谢你的帮助

编辑:
我更新了控制器和视图方法的显示代码。

您正在将下拉列表绑定到
团队
复杂属性(DropDownList帮助程序的第一个参数)。这没有道理。只能绑定到标量值。我还建议您使用帮助器的强类型版本:

@Html.DropDownListFor(x => x.Team.TeamID, (SelectList)ViewBag.Team, String.Empty)
这样,您将使用下拉列表中的选定值填充POST操作中的
TeamID
属性

还应替换:

@Html.ValidationMessageFor(model => model.Team)
与:


这里的问题是什么?什么不起作用?您的下拉列表渲染不正确?或者您不知道如何从中获取文本值?如果是这样的话,您只需将名为Team的字符串参数添加到您的操作中。下拉列表可以正确呈现,但我真的不知道如何从中获取值。我用字符串参数试过了,但不起作用。我得到错误:没有具有键“Team”的类型为“IEnumerable”的ViewData项。是否有表单和post操作?不清楚您正在尝试执行什么操作以及哪些操作不起作用。我更新了代码示例,希望能有所帮助。尝试此操作时,发布时出现以下错误:具有键“Team.TeamID”的ViewData项的类型为“System.Int32”,但必须为“IEnumerable”。DDL已解决,但无法发布。
@Html.ValidationMessageFor(model => model.Team)
@Html.ValidationMessageFor(model => model.Team.TeamID)