jquery.get函数url参数

时间:2014-10-20 17:51:06

标签: javascript jquery asp.net-mvc

在jquery.get()函数中,第一个参数是URL,是我想要检索的内容的url或者是Controller / action方法。

问题是我正在构建一个asp.net-mvc应用程序,我不知道该传递什么作为此参数。现在我通过了我的partialview.cshtml,但没有回复,也不确定我是做对还是错。

这是我得到的

<div id="editor_box"></div>
<button id="add_button">add</button>

<script>
var inputHtml = null;

var appendInput = function () {
    $("#add_button").click(function() {
        if (!inputHtml) {
            $.get('AddItem.cshtml', function (data) {
                inputHtml = data;
                $('#editor_box').append(inputHtml);
            });
        } else {
            $('#editor_box').append(inputHtml);
        }
    })
    };
</script>

另外,第二个参数是什么&#34;功能(数据)&#34;这是行动方法吗?

2 个答案:

答案 0 :(得分:1)

$.get的第一个参数是将使用预期数据进行响应的URL。 jQuery / JavaScript并不关心你拥有什么样的服务器端架构或脚本语言。无论URL看起来像文件AddItem.cshtml还是友好路线(如/User/Sandeep),就客户端而言都无关紧要。

对于ASP.NET,您的URL端点可以像这样生成:

$.get('@Url.Action("SomeAction", "SomeController")', function (data) {

答案 1 :(得分:1)

您需要从脚本中删除var appendInput = function () {。您正在定义一个函数但从不调用它。只需使用以下(更新您的操作和控制器)名称

<script>
  var inputHtml = null;
  $("#add_button").click(function() {
    if (!inputHtml) {
      $.get('@Url.Action("SomeAction", "SomeController")'', function (data) {
        inputHtml = data;
        $('#editor_box').append(inputHtml);
      });
    } else {
      $('#editor_box').append(inputHtml);
    }
  });
</script>

修改

根据您的脚本,您似乎只需要一次内容(然后将其缓存并在后续点击中再次添加。另一种方法是将内容最初呈现在隐藏的<div>元素中,然后在该脚本克隆<div>的内容并将其附加到DOM

<div id="add style="display:none">@Html.Partial("AddItem")</div>

$("#add_button").click(function() {
  $('#editor_box').append($('add').clone());
});