【问题标题】:ASP.NET MVC 3 Logic for dynamically generated dropdown controls用于动态生成的下拉控件的 ASP.NET MVC 3 Logic
【发布时间】:2012-06-05 09:58:14
【问题描述】:

我有一个根据我上传的 Excel 文件中的行数动态生成的表单。我可以在哪里添加查看描述字符串并将动态生成的下拉列表设置为指定值的逻辑,基于描述中的文本? 我想添加一个检查列表,例如: 如果 "blabla" 在描述字符串中,则将下拉列表值设置为 4。

我必须在 Javascript 中执行此操作吗?因为这对我来说并不那么干净。我希望我的业务逻辑在我的控制器中处理,但我不确定在这个设计中会如何进行。

我的代码如下所示:

预览页面,它基本上只是链接到我的名为 Transaction 的编辑器模板:

@using (Html.BeginForm("Preview", "Import", FormMethod.Post))
{
    <table border="1" style="border-color: #FFFFFF">
    @Html.EditorFor(m => m.Transactions, new { Categories = Model.Categories })
    </table>
    <input id="btnSave" type="submit" value="Opslaan in database" />
}

在此编辑器模板事务中,我显示了一些静态数据,以及我之前在另一个页面中上传的 Excel 中每一行的文本框和下拉列表:

<tr>
    <td style="width: 40px; padding: 5px; background-color: @CurrencyHelper.GetCurrencyColor(Model.Amount)" align="right" nowrap="nowrap">@Html.Raw(CurrencyHelper.GetCurrency(Model.Currency, Model.Amount))
    </td>
    <td style="white-space: nowrap; padding: 5px;">@Model.DateTime.ToString("dd-MM-yyyy")
    </td>
    <td style="padding: 5px;">@Model.Description
    </td>
    <td style="padding: 5px;">@Html.EditorFor(m => m.ShortDescription)
    </td>
    <td style="padding: 5px;">@Html.DropDownListFor(m => m.CategoryId, new SelectList(ViewData["Categories"] as IEnumerable<Category>, "CategoryId", "Name"))
    </td>
</tr>

我的控制器,在 View Model 中输入数据:

//Attach unique Transactions and Categories to ViewModel
var viewModel = new ImportViewModel()
{
     Transactions = uniqueTransactions.ToList(),
     Categories = categoryRepository.GetCategories().OrderBy(c => c.Name).ToList()
};

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2


    【解决方案1】:

    静态绑定

    public class HomeController : Controller
        {
            public ActionResult Index()
            {
                ViewBag.Message = "Welcome to the Training Courses...";
                List objcourses = new List();
                objcourses.Add("Asp.Net");
                objcourses.Add("MVC");
                objcourses.Add("WCF");
                objcourses.Add("WPF");
                objcourses.Add("C#.Net");
                ViewBag.Courses = new SelectList(objcourses);
                return View();
            }
        }
    
    @{
    ViewBag.Title = "Home Page";
    }
    Index
    @using(@Html.BeginForm(“Index”,”Home”,FormMethod.Get)) {
    Courses List; @Html.DropDownList(“Courses“)
    }
    

    动态绑定

    public class HomeController : Controller
        {
            public ActionResult Index()
            {
                private MovieDBContext db = new MovieDBContext();
                var GenreLst = new List();
                var GenreQry = from d in db.Movies
                               orderby d.Genre
                               select d.Genre;
                GenreLst.AddRange(GenreQry.Distinct());
                ViewBag.Courses = new SelectList(GenreLst);
                return View();
            }
        }
    @{
        ViewBag.Title = "Home Page";
    }
    Index
    
    @using(@Html.BeginForm("Index","Home",FormMethod.Get)) {
    
    Courses List; @Html.DropDownList("Courses")
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多