我有一个根据我上传的 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>
我的控制器,它在视图模型中输入数据:
//Attach unique Transactions and Categories to ViewModel
var viewModel = new ImportViewModel()
{
Transactions = uniqueTransactions.ToList(),
Categories = categoryRepository.GetCategories().OrderBy(c => c.Name).ToList()
};