2017-05-31 110 views
1

我正在开发一个.net核心应用程序的意见,我是来参加我的代码,我需要添加递增根据用户点击数据。首先,我有一张带有元素的桌子。一旦点击了任何元素,我需要从我的实体框架实现中获取一些数据,并根据我得到的结果将其“发布”到表格格式的视图中。ASP.NET核心 - 用数据填充增量

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

我想知道什么是.Net核心关于这样的网站的良好做法?

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

我和一些朋友谈过,他们提到他们会在HTML中创建一个<script></script>部分来执行这样的操作。我不会认为这是代码可读性和尽可能快的响应的最佳实践,但我为此目的而采取其他方法的耳朵呢?

回答

1

动态内容

针对我的意见添加动态HTML代码的最好方法是

  • 从局部的观点得到呈现的HTML代码中创建根据控制器GET动作(在这里,你可以决定要返回)
  • 当点击表格中的某些项目,要求此行为(使用Ajax)与根据参数和返回所提供的HTML数据什么
  • 插入HTML使用jQuery

例子:

的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请求

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

处理.js文件

昨天我问过类似的问题,毫不费力。
但我建立了自己的解决方案,请参阅this post