Razor 获取新(按用户)填充的列表框的列表

Razor 获取新(按用户)填充的列表框的列表,razor,asp.net-mvc-4,listbox,Razor,Asp.net Mvc 4,Listbox,asp.NETMVC4.0、vs10、razorview 这是我的列表框: <div class="editor-list-field"> <select name="lbToCreateTable" class="clsToCreateTable" id="idToCreateTable" style="width:150px" size="8" multiple="multiple" > @if(Model.ColumnsToC

asp.NETMVC4.0、vs10、razorview

这是我的列表框:

 <div class="editor-list-field">
      <select name="lbToCreateTable" class="clsToCreateTable" id="idToCreateTable" style="width:150px" size="8" multiple="multiple" >
             @if(Model.ColumnsToCreateTable != null)
             {
                  <option>@Model.ColumnsToCreateTable;</option>
             }
       </select>
 </div>
 public ActionResult About(AboutModel model, string btnTestMail, string btnSendMail, string lbToCreateTable)
    {
        try
        {
            if (btnTestMail != null)
            {
                List<string> lstTableCreateCols = new List<string>();
                try
                {
                    if (Request.Form["lbToCreateTable"].ToString().Length > 0)
                    { }

                    HtmlString hs = new HtmlString(model.Content);
                    if (model.TableCreate)
                    {
                        if (hs.ToString().Length > 0 && model.CompanyName != "" && model.MailSubject != "")
                        {
                            CM.CreateMailBody(model.CompanyName, model.MailSubject, hs);
                        }
                    }

                    else
                    {
                        if (hs.ToString().Length > 0 && model.CompanyName != "" && model.MailSubject != "" && model.ColumnsToCreateTable != null)
                        {
                            List<string> lstColumnsToCreateTable = new List<string>();
                            foreach (SelectListItem str in model.ColumnsToCreateTable)
                            {
                                lstColumnsToCreateTable.Add(str.Selected.ToString());
                            }
                            CM.CreateMailbodyWithTable(model.CompanyName, model.MailSubject, hs, lstColumnsToCreateTable);
                        }
                    }
                }

                catch { }
            }
            else if (btnSendMail != null)
            { 

            }
        }
        catch { }
        try
        {
            if (btnTestMail == null && btnSendMail == null)
            {

                if (Session["CompanyName"].ToString().Length > 0)
                {
                    RedirectFromHomeToAbout(model);
                }
            }

        }
        catch { }
        return View(model);
    }
[Required]
    [DataType(DataType.Text)]
    public string CompanyName { get; set; }

    [Required]
    [DataType(DataType.Text)]
    public string MailSubject { get; set; }

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

    public bool IsChecked { get; set; }

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

    public bool TableCreate { get; set; }

    [Display]
    [DataType(DataType.Text)]
    public string Message { get; set; }

    [Required]
    [DataType(DataType.Html)] 
    [AllowHtml]
    public string Content { get; set; }

    [DataType(DataType.EmailAddress)]
    public string EmailAddress { get; set; }

@if(Model.ColumnsToCreateTable!=null)
{
@Model.ColumnsToCreateTable;
}
我的控制器:

 <div class="editor-list-field">
      <select name="lbToCreateTable" class="clsToCreateTable" id="idToCreateTable" style="width:150px" size="8" multiple="multiple" >
             @if(Model.ColumnsToCreateTable != null)
             {
                  <option>@Model.ColumnsToCreateTable;</option>
             }
       </select>
 </div>
 public ActionResult About(AboutModel model, string btnTestMail, string btnSendMail, string lbToCreateTable)
    {
        try
        {
            if (btnTestMail != null)
            {
                List<string> lstTableCreateCols = new List<string>();
                try
                {
                    if (Request.Form["lbToCreateTable"].ToString().Length > 0)
                    { }

                    HtmlString hs = new HtmlString(model.Content);
                    if (model.TableCreate)
                    {
                        if (hs.ToString().Length > 0 && model.CompanyName != "" && model.MailSubject != "")
                        {
                            CM.CreateMailBody(model.CompanyName, model.MailSubject, hs);
                        }
                    }

                    else
                    {
                        if (hs.ToString().Length > 0 && model.CompanyName != "" && model.MailSubject != "" && model.ColumnsToCreateTable != null)
                        {
                            List<string> lstColumnsToCreateTable = new List<string>();
                            foreach (SelectListItem str in model.ColumnsToCreateTable)
                            {
                                lstColumnsToCreateTable.Add(str.Selected.ToString());
                            }
                            CM.CreateMailbodyWithTable(model.CompanyName, model.MailSubject, hs, lstColumnsToCreateTable);
                        }
                    }
                }

                catch { }
            }
            else if (btnSendMail != null)
            { 

            }
        }
        catch { }
        try
        {
            if (btnTestMail == null && btnSendMail == null)
            {

                if (Session["CompanyName"].ToString().Length > 0)
                {
                    RedirectFromHomeToAbout(model);
                }
            }

        }
        catch { }
        return View(model);
    }
[Required]
    [DataType(DataType.Text)]
    public string CompanyName { get; set; }

    [Required]
    [DataType(DataType.Text)]
    public string MailSubject { get; set; }

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

    public bool IsChecked { get; set; }

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

    public bool TableCreate { get; set; }

    [Display]
    [DataType(DataType.Text)]
    public string Message { get; set; }

    [Required]
    [DataType(DataType.Html)] 
    [AllowHtml]
    public string Content { get; set; }

    [DataType(DataType.EmailAddress)]
    public string EmailAddress { get; set; }
public ActionResult About(关于模型、字符串btnTestMail、字符串btnSendMail、字符串lbToCreateTable)
{
尝试
{
如果(btnTestMail!=null)
{
List lstTableCreateCols=新列表();
尝试
{
if(Request.Form[“lbToCreateTable”].ToString().Length>0)
{ }
HtmlString hs=新的HtmlString(model.Content);
if(model.TableCreate)
{
如果(hs.ToString().Length>0&&model.CompanyName!=“”&&model.MailSubject!=“”)
{
CM.CreateMailBody(model.CompanyName、model.MailSubject、hs);
}
}
其他的
{
如果(hs.ToString().Length>0&&model.CompanyName!=“”&&model.MailSubject!=“”&&model.ColumnsToCreateTable!=null)
{
List lstColumnsToCreateTable=新列表();
foreach(model.ColumnsToCreateTable中的SelectListItem str)
{
lstColumnsToCreateTable.Add(str.Selected.ToString());
}
CM.CreateMailbodyWithTable(model.CompanyName、model.MailSubject、hs、lstColumnsToCreateTable);
}
}
}
捕获{}
}
else if(btnSendMail!=null)
{ 
}
}
捕获{}
尝试
{
如果(btnTestMail==null&&btnSendMail==null)
{
如果(会话[“CompanyName”].ToString().Length>0)
{
从家重定向到(模型);
}
}
}
捕获{}
返回视图(模型);
}
我的型号:

 <div class="editor-list-field">
      <select name="lbToCreateTable" class="clsToCreateTable" id="idToCreateTable" style="width:150px" size="8" multiple="multiple" >
             @if(Model.ColumnsToCreateTable != null)
             {
                  <option>@Model.ColumnsToCreateTable;</option>
             }
       </select>
 </div>
 public ActionResult About(AboutModel model, string btnTestMail, string btnSendMail, string lbToCreateTable)
    {
        try
        {
            if (btnTestMail != null)
            {
                List<string> lstTableCreateCols = new List<string>();
                try
                {
                    if (Request.Form["lbToCreateTable"].ToString().Length > 0)
                    { }

                    HtmlString hs = new HtmlString(model.Content);
                    if (model.TableCreate)
                    {
                        if (hs.ToString().Length > 0 && model.CompanyName != "" && model.MailSubject != "")
                        {
                            CM.CreateMailBody(model.CompanyName, model.MailSubject, hs);
                        }
                    }

                    else
                    {
                        if (hs.ToString().Length > 0 && model.CompanyName != "" && model.MailSubject != "" && model.ColumnsToCreateTable != null)
                        {
                            List<string> lstColumnsToCreateTable = new List<string>();
                            foreach (SelectListItem str in model.ColumnsToCreateTable)
                            {
                                lstColumnsToCreateTable.Add(str.Selected.ToString());
                            }
                            CM.CreateMailbodyWithTable(model.CompanyName, model.MailSubject, hs, lstColumnsToCreateTable);
                        }
                    }
                }

                catch { }
            }
            else if (btnSendMail != null)
            { 

            }
        }
        catch { }
        try
        {
            if (btnTestMail == null && btnSendMail == null)
            {

                if (Session["CompanyName"].ToString().Length > 0)
                {
                    RedirectFromHomeToAbout(model);
                }
            }

        }
        catch { }
        return View(model);
    }
[Required]
    [DataType(DataType.Text)]
    public string CompanyName { get; set; }

    [Required]
    [DataType(DataType.Text)]
    public string MailSubject { get; set; }

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

    public bool IsChecked { get; set; }

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

    public bool TableCreate { get; set; }

    [Display]
    [DataType(DataType.Text)]
    public string Message { get; set; }

    [Required]
    [DataType(DataType.Html)] 
    [AllowHtml]
    public string Content { get; set; }

    [DataType(DataType.EmailAddress)]
    public string EmailAddress { get; set; }
[必需]
[数据类型(DataType.Text)]
公共字符串CompanyName{get;set;}
[必需]
[数据类型(DataType.Text)]
公共字符串MailSubject{get;set;}
公共列表表列{get;set;}
已检查公共布尔值{get;set;}
公共列表列StoCreateTable{get;set;}
公共布尔表创建{get;set;}
[显示]
[数据类型(DataType.Text)]
公共字符串消息{get;set;}
[必需]
[数据类型(DataType.Html)]
[allowtml]
公共字符串内容{get;set;}
[数据类型(数据类型.电子邮件地址)]
公共字符串电子邮件地址{get;set;}
在我的模型中,为什么得到model.ColumnsToCreateTable=null

业务:

当我的视图加载时,此列表框将为空。在该视图中,有另一个列表框,该列表框已正确填充。我将填充ListBoxToCreateTable(最初为空)。当我提交表格以及所有其他数据时,该列表(新填充的列表框)将发送给我的承包商。我必须用这个做很多事情

问题:

  • 我怎样才能解决这个问题
  • 这样做对吗
  • 还有其他建议吗

  • 由于你的问题不太清楚,很难说具体的话。你应该弄清楚到底是什么问题。试着找出以下事实的答案:

  • 检查model.ColumnsToCreateTable的数据绑定
  • 如何从索引页调用aboutModel不清楚,请在填充模型之前初始化aboutModel一次
  • 调试并检查从重定向到应该填充ColumnsToCreateTable的位置
  • 检查以下链接以获得有关listbox数据绑定的更多知识。


    您应该尝试使用HtmlHelpClass轻松绑定它。

    请查看问题。我已经添加了Model和conrler。在向其中添加项之前,请检查
    Model.ColumnsToCreateTable
    是否不为空
    Model.ColumnsToCreateTable.Add(str)
    。如果是,则在添加项之前添加此项
    model.ColumnsToCreateTable=new List()但我的视图未传递model.columntorRetattable。模型正在传递null。如何将
    模型
    传递到
    视图
    。发布完整的
    控制器
    code给出完整的控制器。在我的索引页面中,我确实返回了重定向(“Home/About”)。第一次调用about控制器时,它没有任何内容。该方法从家转向(模型);然后执行。然后加载我的aboutView页面。当我点击btnTestMail时,模型将传递数据。