我有一个简单的列表视图,我在这里加载我的数据。 控制器:
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();
}
但是控制器动作没有被调用。 我该怎么办?
答案 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
}
});
希望这有助于男人