加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从Html.DropdownListFor … MVC3获取文本

发布时间:2020-12-15 18:30:27 所属栏目:百科 来源:网络整理
导读:我有一个模特: public class DocumentModel{ public int TypeID { get; set; } public ListSelectListItem DocumentTypes { get; set; }} 我有一个观点: @Html.DropDownListFor(x = x.TypeID,Model.DocumentTypes,"- please select -") 我填充了我的下拉 v
我有一个模特:
public class DocumentModel
{
    public int TypeID { get; set; }
    public List<SelectListItem> DocumentTypes { get; set; }
}

我有一个观点:

@Html.DropDownListFor(x => x.TypeID,Model.DocumentTypes,"- please select -")

我填充了我的下拉

var model = new DocumentModel();
        model.DocumentTypes = GetDocumentTypes(); 

private static List<SelectListItem> GetDocumentTypes()
    {

        var items = new List<SelectListItem>
                        {
                            new SelectListItem
                                {Text = @"Text #1",Value = "1"},new SelectListItem
                                {Text = @"Text #2",Value = "2"},};

        return items;

    }

回传表单时,我有一个控制器操作:

[HttpPost] 
    public void UploadDocument(DocumentModel model)
    {
        if (ModelState.IsValid)
        {
            // I want to get the text from the dropdown
        }
    }

如何从我的下拉列表中获取文本?谢谢

解决方法

使用默认模型绑定可能无法轻松获得此信息.你需要这样一个小的解决方法.

1)向模型/ viewmodel添加新属性以存储选定的文本

public class DocumentModel
{
    public int TypeID { get; set; }
    public List<SelectListItem> DocumentTypes { get; set; }
    public string SelctedType { set;get;}
}

2)使用Html.HiddenFor Helper方法在该属性的表单中创建隐藏变量

@Html.HiddenFor(x => x.SelctedType)

3)使用小javascript覆盖提交!即;当用户提交表单时,从下拉列表中获取所选文本,并将该值设置为隐藏字段的值.

$(function () {
    $("form").submit(function(){
        var selTypeText= $("#TypeID option:selected").text();
        $("#SelctedType").val(selTypeText);           
    });
});

现在,在您的HTTPPost操作方法中,这将在SelectedType属性中可用.

[HttpPost]
public void UploadDocument(DocumentModel model)
{
   if(ModelState.IsValid)
   {
      string thatValue=model.SelectedType;
   }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读