Asp MVC AjaxExtensions,来自控制器的调用

时间:2014-07-04 10:01:41

标签: ajax asp.net-mvc

我确信这很简单,但我很难找到它

在控制器内你可以这样做:

public ActionResult MyAction()
{
  string url = Url.Action(action, controller),
  // do something with the url
}

Ajax的等价物是什么?即你在一个视图中调用Ajax.ActionLink的位置是什么?控制器的等价物?

  • 精化 -

我有一个带有网格和一些输入元素的主/细节排列。您可以单击网格中的选择/删除来修改或删除该行。

网格是一个Kendo UI网格,视图通过以下方式呈现:

  1. 呈现输入元素的局部视图
  2. 创建一个json对象,即

    @ {     var jsLines = @ Html.Raw(Json.Encode(Model.Lines)); }

  3. 将Kendo网格绑定到此json

  4. 从网格内部我想点击选择并调用Ajax方法以使用表单详细信息更新部分视图

    感谢

2 个答案:

答案 0 :(得分:1)

您可以使用剃须刀视图中的Url.Action。类似的东西:

$.ajax({
    url: '@Url.Action("Action", "Controller")',
    ...

答案 1 :(得分:0)

我完全不相信这是正确的方法,但总是有选择权。

Ajax.ActionLink似乎与Url.Action相同,但引入了一些属性。所以你可以使用它:

        return string.Format("<a data-ajax='true' data-ajax-mode='replace' 
                               data-ajax-update='{2}' href=\"{0}\">{1}</a>",
            Url.Action(action, controller, routeValues),
            text, 
            "formContainerSelectSection");

更新此内容:

<div id="formContainerSelectSection">
    ... stuff to be replaced via ajax
</div>

我接受,尤其是在与NicoD讨论之后,还有其他可能更简单的方法来做到这一点,特别是这是在控制器中创建一个链接,这是Views工作,但最初的问题是关于如何做此