ASP.NET核心 - 逐步填充数据视图

时间:2017-05-31 08:16:35

标签: javascript jquery asp.net asp.net-mvc

我正在开发一个.Net Core应用程序,我已经参与了我需要根据用户点击量逐步添加数据的代码。首先,我有一个元素表。一旦点击任何元素,我需要从我的实体框架实现中获取一些数据,并根据我得到的内容我应该发布" post"以表格格式显示在视图中。

然后用户可以进一步点击该新表中的元素,并根据我需要的点击来绘制一个带有指针的地图。

我想知道.Net Core在这样的网站上有什么好的做法?

目前我有一个类似的视图,但只有一个表和一个partialView。他们实现的方式是使用我的site.js来注册点击和HTML元素data-url来运行我的控制器方法。这是最好的还是最优的方法还是有更聪明的方法?我真的只想知道有哪些类型的解决方案..

我和一些朋友谈过,他们提到他们会在HTML中创建一个<script></script>部分来执行这样的操作。我不会认为这是代码读取能力和最快可能响应的最佳实践,但我对所有其他方法都赞不绝口。

1 个答案:

答案 0 :(得分:1)

动态内容

对于我的观点,添加动态HTML代码的最好方法是

  • 在相应的控制器中创建GET个动作,以从部分视图中获取渲染的html代码(在这里您可以决定要返回的内容)
  • 当您点击某个项目时,请使用相应参数请求此操作(使用ajax)并返回呈现的html数据
  • 使用jQuery插入HTML

示例:

GET行动

[ResponseCache(NoStore = true, Duration = 0)]
public async Task<IActionResult> NewStamp(string date, string recentProject)
{

    // Do work with paramters and evaluate right html-code

    return PartialView("_CollectionPartial", new ViewModel(date, recentProject));
}

HTML按钮

<button asp-controller="Stamps" asp-area="WorkTime" asp-action="NewStamp" id="addStamp" type="button" class="btn btn-success">
    <span class="glyphicon glyphicon-plus"></span> Add
</button>

ajax-request

$.ajax({
        url: this.formAction,
        data: "date=" + date.format("HH:mm") + "&recentProject=" + recentProject,
        cache: false,
        success: function (html) {
            $('#id').append(html);

处理.js文件

昨天我毫不费力地问了一个类似的问题 但我构建了自己的解决方案,请参阅this post