Asp.Net通过按钮点击加载数据

时间:2017-05-18 12:00:18

标签: c# asp.net asp.net-mvc

我有一个简单的列表视图,我在这里加载我的数据。 控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Message = "Your application description page.";
        IList<Product> products;

        using (ISession session = NHibernateSession.OpenSession())  // Open a session to conect to the database
        {
            products = session.Query<Product>().ToList(); //  Querying to get all the books
        }

        return View(products);
    }
}

View是一个来自模板的简单列表视图。 现在,我需要在点击按钮后将数据加载到列表视图。 据我所知,我需要渲染局部视图。 我已添加此内容以查看:

<button id="Load">Load data</button>
    <script type="text/javascript">
    var url = '@Url.Action("LoadData", "Home")';
    $('#Load').click(function() {
      var keyWord = $('#Keyword').val();
      $('#result').load(url);
    })
    </script>
<div id="result"></div>

添加控制器操作:

public ActionResult LoadData()
{
    // here will be model creation and passing view
    return PartialView();
}

但是控制器动作没有被调用。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

现在我会这样做。

我们创建了一个在http gets

上返回JSON的动作方法
public class SomeController : Controller

    [HttpGet]
    public ActionResult LoadData()
    {
        using (ISession session = NHibernateSession.OpenSession())  // Open a session to conect to the database
        {
            products = session.Query<Product>().ToList(); //  Querying to get all the books
        }

        return Json(new {data=product},
                    JsonRequestBehavior.AllowGet);
    }

在您的视图中,我们通过调用LoadData

来执行ajax请求以获取数据
$.ajax({
  type: 'get',
  dataType: 'json',
  url: 'SomeController/LoadData',
  success: function (data) {
    //Render data to view maybe using jquery etc                                
  },
  error: function(data) {
    //Notify user of error
  }
});

希望这有助于男人