从视图传递值到控制器

7 浏览
0 Comments

从视图传递值到控制器

我有这段辅助代码:

@helper GetTreeView(List siteMenu, int parentID)
{
    foreach (var i in siteMenu.Where(a => a.ParentID.Equals(parentID)))
    {
        
  • @{var submenu = siteMenu.Where(a => a.ParentID.Equals(i.ID)).Count();} @if (submenu > 0) {   } else {   } @i.CategoryName @if (submenu > 0) {
      @Treeview.GetTreeView(siteMenu, i.ID) @* 递归调用以填充子项 *@
    }
  • } }

    我想将id传递给控制器的一个行为方法。

    如何从视图中将id传递给控制器中的一个行为方法。

    $('#Category').click(function () {
        url = '@Url.Action("Index", "TestDetails");
        $.ajax({
            url: url,
            type: 'POST',
            data: { id: $(this).find('a').attr('id') },
            success: function (returnData) {
            },
            error: {
            }
        });
    });
    

    我如何在第二段代码中获取id。

    使用该id,我必须通过控制器中的一个行为方法获取一些详细信息。

    行为方法

    public ActionResult Index(int id)
    {
        TestDetail detail = new TestDetail();
        detail = db.TestDetails.Single(a => a.ID == id);
        return View(detail);
    }
    

    0
    0 Comments

    问题的出现原因是在前端页面中,点击一个类别时,通过ajax调用后端的Index方法,并将点击的类别id作为参数传递给后端。但是在前端的ajax调用中,传递参数的方式有问题,导致后端无法接收到正确的参数。

    解决方法是在前端的ajax调用中修改data参数的传递方式,将参数以JSON格式传递,并修正url的书写错误。同时,可以通过调试工具检查点击事件是否被正确触发。

    下面是解决问题的具体步骤:

    首先,编辑helper方法,将参数parentID改成正确的类型,并在其中添加逻辑判断。

    然后,修正ajax调用中的data参数的传递方式,将参数以JSON格式传递,并修正url的书写错误。

    接着,检查是否在控制台窗口中有任何错误信息,特别是检查url变量的书写是否正确。

    最后,可以通过开发者工具中的调试功能,确认点击事件是否被正确触发。可以将ajax调用替换为一个简单的alert("click!")语句来验证点击事件是否正常工作。

    经过以上步骤的处理,问题应该可以得到解决。

    0
    0 Comments

    问题的原因是需要将视图中的值传递给控制器,然后根据传递的值执行相应的操作。解决方法是通过在视图中添加一个点击事件,将点击的值作为参数传递给控制器的方法。然后使用ajax将值传递给控制器,并在控制器中执行相应的操作。

    首先,在视图中添加一个点击事件,并将点击的值作为参数传递给控制器的方法。代码如下:

    
        {{CategoryName}}
        
    
    

    然后,在JavaScript中定义CategoryClick方法,并使用ajax将点击的值传递给控制器。代码如下:

    
    

    接下来,需要在控制器中接收传递的值,并执行相应的操作。可以根据需要返回一个视图或者其他数据。例如,在ajax的success回调函数中返回一个部分视图,并将数据模型传递给视图。代码如下:

    success: function (data) {
        $('#yourdiv').html(data);
    }
    

    最后,如果需要在span元素中添加右键功能,可以参考stackoverflow上的解决方案。

    通过以上步骤,我们可以将视图中的值传递给控制器,并根据传递的值执行相应的操作。

    0