在ASP中使用数据注释.. NET MVC与AJAX jQuery数据表
本文关键字:MVC AJAX jQuery 数据表 NET 注释 ASP 数据 | 更新日期: 2023-09-27 18:08:14
我已经实现了AJAX在我的jQuery数据表以下一个简单的教程,但我不确定如何使用我在我的数据视图模型中创建的所有数据注释。我该怎么做呢?在使用Ajax之前,我的视图中会有这样的内容(使用razor):
<tbody>
@foreach (CallableNoteViewModel vm in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => vm.UnderlyingAsset) </td>
<td>@Html.DisplayFor(modelItem => vm.PayoutCurrency)</td>
<td>@Html.DisplayFor(modelItem => vm.Term)</td>
<td>@Html.DisplayFor(modelItem => vm.AutoCallLevel)</td>
<td>@Html.DisplayFor(modelItem => vm.Frequency)</td>
<td>@Html.DisplayFor(modelItem => vm.Barrier)</td>
<td>@Html.DisplayFor(modelItem => vm.CouponBarrier)</td>
<td>@Html.DisplayFor(modelItem => vm.AutoCallableStart)</td>
<td>@Html.DisplayFor(modelItem => vm.UpsideParticipation)</td>
<td>@Html.DisplayFor(modelItem => vm.Fee)</td>
<td>@Html.DisplayFor(modelItem => vm.Coupon)</td>
<td>@Html.DisplayFor(modelItem => vm.AsOfDate)</td>
</tr>
}
</tbody>
现在,很自然地,我的视图看起来是这样的,带有一个空的主体。:
<table id="ajax_ci_table" class="table table-striped table-bordered table-responsive" style="white-space: nowrap">
<thead>
<tr>
<th>@Html.DisplayNameFor(model => model.UnderlyingAsset)</th>
<th>@Html.DisplayNameFor(model => model.PayoutCurrency)</th>
<th>@Html.DisplayNameFor(model => model.Term)</th>
<th>@Html.DisplayNameFor(model => model.AutoCallLevel)</th>
<th>@Html.DisplayNameFor(model => model.Frequency)</th>
<th>@Html.DisplayNameFor(model => model.Barrier)</th>
<th>@Html.DisplayNameFor(model => model.CouponBarrier)</th>
<th>@Html.DisplayNameFor(model => model.AutoCallableStart)</th>
<th>@Html.DisplayNameFor(model => model.UpsideParticipation)</th>
<th>@Html.DisplayNameFor(model => model.Fee)</th>
<th>@Html.DisplayNameFor(model => model.Coupon)</th>
<th>@Html.DisplayNameFor(model => model.AsOfDate)</th>
</tr>
</thead>
<tbody>
</tbody>
这是由我的AjaxController返回JSON数据填充:
IEnumerable<string[]> stringdata = from c in data
select new[]
{
c.UnderlyingAsset,
c.PayoutCurrency,
c.Term.ToString(),
c.AutoCallLevel.ToString(CultureInfo.InvariantCulture),
c.Frequency.ToString(),
c.Barrier.ToString(CultureInfo.InvariantCulture),
c.CouponBarrier.ToString(CultureInfo.InvariantCulture),
c.AutoCallableStart.ToString(),
c.UpsideParticipation.ToString(CultureInfo.InvariantCulture),
c.Fee.ToString(CultureInfo.InvariantCulture),
c.Coupon.ToString(CultureInfo.InvariantCulture),
c.AsOfDate.ToString(CultureInfo.InvariantCulture)
};
但是现在我的数据注释显然不工作,我在我的视图模型上用于格式化。比如:
[Display(Name = "PayFreq")]
[UIHint("FrequencyAndTerm")]
public int Frequency
{
get { return _callableNote.Frequency; }
}
我如何格式化我的数据或使用我现有的数据注释,而不直接返回格式化数据在我的控制器(在我的第二个最后一个代码块)?我觉得在控制器中返回格式化的数据是错误的。这难道不是视图的工作吗?
谢谢你的帮助!
CoolboyJules,
我不认为DisplayFor使用注释。尝试使用编辑器类型帮助器而不是显示。
@Html.TextboxFor(m => m.UnderlyingAsset);
不知道你的整个视图看起来像什么,但这里有一个快速的模板。模型有一个布尔IsViewOnly标志
@using (Ajax.BeginForm("Edit", "Inventory", null, ajaxOptions, new { id = "frmInventoryEditModal" }))
{
<!-- modal div -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h2 style="color: darkorchid Title</h2>
</div>
<div id="ErrorSummary">
@Html.ValidationSummary(true)
</div>
<div class="modal-body" id="modal-body">
<div class="row-fluid DataRow">
@using (Html.ControlGroupFor(m => m.UnderlyingAsset))
{
@Html.LabelFor(m => m.UnderlyingAsset, new { @class = "control-label" })
<div class="controls">
@Html.TextBoxFor(m => m.UnderlyingAsset)
</div>
}
</div>
// Continue for the rest of the fields in model
</div>
<div class="modal-footer">
@if (!Model.IsViewOnly)
{
<button id="btnSave" type="button" class="btn btn-primary">Save changes</button>
}
<button id="btnCancel" class="btn btn-success" data-dismiss="modal" aria-hidden="true">Cancel</button>
</div>
}
这些帮助程序查找并添加适当的html到您呈现的控件中,该控件应该显示您的属性。