我试图让一个表格行作为链接到我的mvc网站中的另一个视图。而不是使用自动生成的表列表提供的标准“详细信息”链接,我想使用表格行作为链接到“详细信息”视图。所以不知何故,我需要将这一行作为链接工作。每个ROM都有一个唯一的ID,我需要将其传递给控制器方法。我已经尝试了不同的解决方案,但是当我按在桌子上一行指出发生......在MVC中使用javascript调用控制器方法
到目前为止,这是我:
<script type="text/javascript">
$(document).ready(function(){
$('#customers tr').click(function() {
var id = $(this).attr('id');
$.ajax({
url: "Customer/Details" + id,
succes: function() { }
});
})
})
</script>
我控制器的方法:
public ActionResult Details(int id)
{
Customer model = new Customer();
model = this.dbEntities.Customers.Where(c => c.Customer_ID == id).Single();
return View(model);
}
Global.asax:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"CustomerDetails",
"Customer/Details/{id}",
new { controller = "Customer", action = "Details", id = "" }
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
// Use LocalDB for Entity Framework by default
Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
谢谢:)通过简单地使用window.location =“Details /”+ id; – Christian
太棒了!现在不要忘记用一个指针来设置行的样式:'.MyAction {cursor:pointer;}'。让我知道你是否需要进一步的帮助。 –