【问题标题】:How to call my controller action when my button is inside the Json query inside the view page in mvc4?当我的按钮位于 mvc4 视图页面内的 Json 查询内时,如何调用我的控制器操作?
【发布时间】:2014-10-16 09:26:17
【问题描述】:

我的控制器块是这些:

public ActionResult delete(int id)
{

}

我在视图页面中的 Json 代码是

for (var i = 0; i < len; i++) {
  if (data[i].ProductId && data[i].Name && data[i].ShortDescription && data[i].MediumImage && data[i].Price && data[i].IconImage) {                 
    var Photoq = "/Images/HomeImages/" + data[i].MediumImage;
    var Photo = "<img id='imgAd' src='"+ Photoq +"' width='100px' height='100px' alt='img'/>";
    txt += '<tr><td><div id ="result1" ><div>' + Photo + '</div> <div ><div>' + data[i].ProductId + "</br> Name- " + data[i].Name + "</br> Description " + data[i].ShortDescription + ", </br>" + data[i].Price+'<input id="Btnremove" type="submit" value="Remove" />' + "</br>";                            
  }

最后一行我的按钮 id="Btnremove" 我调用这些的 jquery 代码是

function deletecart() {
  $("#Btnremove").click();
  $.getJSON('@Url.Action("delete", "Home")')
};

但是调用控制器操作没有任何作用...请告诉我解决方案..并告诉我如何通过按钮单击事件传递一些 id。

【问题讨论】:

  • 你在哪里打电话给deletecart
  • 通过点击这些按钮,我想进入控制器操作。我不知道如何从这里开始?
  • 看来您需要删除function deletecart() 并绑定到#btnremove click

标签: jquery asp.net-mvc-4 json.net


【解决方案1】:

如果有多个产品(我假设会有,通过查看 for 循环),那么您的页面中将有多个具有相同 ID 的按钮,这对 jQuery 不利。我建议,您使用类而不是 ID。

在发布的代码中,我找不到 deletecart() 的调用。

我会在主视图中使用document.ready 事件将点击处理程序绑定到动态按钮

$(document).ready(function() {
    $('document').on('click', '.Btnremove', function(e) {
        $.getJSON('@Url.Action("delete", "Home")');
    });
});

请注意,我在文档中添加了“点击”处理程序,而不是按钮本身,这是因为按钮是动态创建的。另外,我使用了 class 而不是 Id。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    相关资源
    最近更新 更多