使用@Html.EditorForModel()时对ASP.NET剃须刀页面中的字段进行排序,可以通过以下步骤实现:
下面是一个示例代码:
// 在View中使用@Html.EditorForModel()来调用自定义的EditorTemplates
@Html.EditorForModel("Object")
// 在EditorTemplates文件夹中创建Object.cshtml文件
@model YourModel
@{
// 获取所有属性
var properties = ViewData.ModelMetadata.Properties;
}
<div id="sortable">
@foreach (var property in properties)
{
// 隐藏需要排序的字段
if (property.PropertyName == "Property1" || property.PropertyName == "Property2")
{
@Html.HiddenFor(model => model.GetType().GetProperty(property.PropertyName).GetValue(Model, null))
}
else
{
@Html.EditorFor(model => model.GetType().GetProperty(property.PropertyName).GetValue(Model, null))
}
}
</div>
<script>
$(function () {
// 使用jQuery UI的sortable()方法对字段进行排序
$("#sortable").sortable();
// 在排序完成后,更新隐藏字段的值
$("#sortable").on("sortupdate", function (event, ui) {
var sortedValues = [];
$("#sortable input[type='hidden']").each(function () {
sortedValues.push($(this).val());
});
// 更新隐藏字段的值
$("#sortable input[type='hidden']").each(function (index) {
$(this).val(sortedValues[index]);
});
});
});
</script>
这样,当使用@Html.EditorForModel()时,剃须刀页面中的字段将可以通过拖拽进行排序。请注意,这只是一个示例代码,具体实现可能需要根据实际情况进行调整。
关于ASP.NET剃须刀页面中字段排序的更多信息,可以参考腾讯云的相关文档和产品:
请注意,以上答案仅供参考,具体实现方式可能因实际情况而异。
领取专属 10元无门槛券
手把手带您无忧上云