首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dropdownlist中的选定值不起作用

dropdownlist中的选定值不起作用
EN

Stack Overflow用户
提问于 2013-04-12 02:05:04
回答 1查看 512关注 0票数 0

我试图在视图中显示一个复杂的视图模型,除了一个下拉列表之外,所有的东西都工作得很好。我正在显示一个枚举列表,并将所选对象设置为它应该是的样子。但是由于未知的原因,它没有显示所选的值。我已经尝试了很多次,但都失败了--请帮帮我。代码如下所示-

枚举:

代码语言:javascript
运行
复制
public enum CommentStatus
{
    NoStatus = 0,
    Resolved = 1,
    NotApplicable = 2
}

型号:

代码语言:javascript
运行
复制
public class CheckComments
{
    public string EntryId { get; set; }
    public int Serial { get; set; }
    public string Comment { get; set; }
    public DateTime CommentDate { get; set; }
    public CommentStatus CommentStatus { get; set; } 
}

public class CheckDataViewModel
{
  public string EntryId { get; set; }
  public string CheckId { get; set; }
  public decimal Value { get; set; }
  public List<CheckComments> CheckCommentsList { get; set; } 

  public List<string> CommentStatusList { get; set; } 
}

控制器:

代码语言:javascript
运行
复制
public class CheckDataController : Controller
{
   public ActionResult GetEnteredCheckData(string entryId)
   {
      var checkDataViewModel = new CheckDataViewModel();
      var checkData = new CheckDataManager().GetCheckData(entryId);

      checkDataViewModel.EntryId = checkData.EntryId;
      checkDataViewModel.CheckId = checkData.CheckId;
      checkDataViewModel.Value = checkData.Value;
      checkDataViewModel.CheckCommentsList = checkData.Comments;
      checkDataViewModel.CommentStatusList = Enum.GetNames(typeof (CommentStatus)).ToList();

            return View("EnteredCheckData", checkDataViewModel);
   }
}

查看:

代码语言:javascript
运行
复制
@model PDCA.Web.Models.CheckDataViewModel
@{
   ViewBag.Title = "EnteredCheckData";
   Layout = "~/Views/Shared/_Layout.cshtml";
 }
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
   <fieldset>
      <div class="row">
         <div class="span3">
            <div class="text-left">@Html.LabelFor(model => model.EntryId)</div>
         </div>
         <div class="span3">
            <div class="text-left">
                @Html.DisplayFor(model => model.EntryId)
                @Html.HiddenFor(model => model.EntryId)
            </div>
         </div>
      </div>
   </fieldset>
   <fieldset>
      <legend>Check Information</legend>
      <div class="row">
         <div class="span3">
            <div class="text-left">@Html.LabelFor(model => model.CheckId)</div>
         </div>
         <div class="span3">
            <div class="text-left">
                @Html.DisplayFor(model => model.Check.CheckId)
                @Html.HiddenFor(model => model.Check.CheckId)
            </div>
         </div>
       </div>
   </fieldset>
   <fieldset>
       <legend>Comments</legend>

       <div>
          <table class="table table-bordered">
            <tr>
                <th>
                    Serial
                </th>
                <th>
                    Comment
                </th>
                <th>
                    Date
                </th>
                <th>
                    Status
                </th>
                <th>
                </th>
            </tr>
            @for (int i = 0; i < Model.CheckCommentsList.Count; i++)
            {
              <tr>
                 <td>
                    @Html.DisplayFor(modelItem => Model.CheckCommentsList[i].Serial)
                    @Html.HiddenFor(modelItem => Model.CheckCommentsList[i].Serial)
                 </td>
                 <td>
                    @Html.DisplayFor(modelItem => Model.CheckCommentsList[i].Comment)
                    @Html.HiddenFor(modelItem => Model.CheckCommentsList[i].Comment)
                 </td>
                 <td>
                    @Html.DisplayFor(modelItem => Model.CheckCommentsList[i].CommentDate)
                        @Html.HiddenFor(modelItem => Model.CheckCommentsList[i].CommentDate)
                    </td>
                    <td>
                        @Html.DropDownListFor(modelItem => Model.CheckCommentsList[i].CommentStatus, new SelectList(Model.CommentStatusList, Model.CheckCommentsList[i].CommentStatus))
                        @Html.ValidationMessageFor(model => Model.CheckCommentsList[i].CommentStatus)
                    </td>
                    <td>
                        @Html.ActionLink("Update Status", "UpdateCommentStatus", new { Model.EntryId, Model.CheckCommentsList[i].Serial, Model.Check.CheckTitle, Model.Check.CheckId })|
                        @Html.ActionLink("Delete", "DeleteComment", new { Model.CheckCommentsList[i].Serial, Model.EntryId })
                    </td>
                </tr>
            }
         </table>
     </div>

  </fieldset>
}
<div>
   @Html.ActionLink("Back to List", "Index")
</div>

代码太长了,但我认为这会帮助你理解我的错误。提前感谢朋友们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-12 23:01:37

解决方案:

@Html.DropDownListFor(modelItem => Model.CheckCommentsListi.CommentStatus,新的SelectList(Model.CommentStatusList,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15955763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档