【问题标题】:Looking for the right url in an Ajax json call在 Ajax json 调用中寻找正确的 url
【发布时间】:2011-07-21 07:28:48
【问题描述】:

我的 cshtml 中有下一个代码,用于根据在 Telerik 网格控件中选择一行的结果填充部分视图。

    function onRowSelected(e) {
    var tracksGrid = $('#Tracks').data('tGrid');
    articleID = e.row.cells[0].innerHTML;

    alert(articleID)

    var recordID = { id : articleID };

    $.ajax(
     {
         type: 'html',
         contentType: 'application/json; charset=utf-8',
         data: JSON.stringify(recordID),
         dataType: 'json',
         url: '@Url.Action("Tracks", "Home")',
         success: function (result) {
             alert('Success');
         },

         error: function (error) {
             alert('Fail');
     }
 });
}

警报显示一个 id。到目前为止一切顺利。

但我认为网址是错误的,我不知道该怎么办。 在 home 控制器中,Tracks 需要一个字符串 id。

 public ActionResult Tracks(String id)

你能帮帮我吗?

谢谢

@3nigma 不错!在 error.responseText 中,我将 _tracks 视为 html。例如fieldset、legend、table 和 10 种数据。 在我的 partialView 中:@model IEnumerable 一个 Fieldset,Legend 表一个 @foreach(模型中的 var 项)和 tr 有一个 item.Description。 我还能做什么??

这是我的部分观点

@model IEnumerable<Web.Models.Tracks>           
<fieldset>
    <legend>Tracks</legend>
    <table>
        <tr>
            <td>
                <div class="display-label">
                    unitno</div>
            </td>
            <td>
                <div class="display-label">
                    Trackno</div>
            </td>
            <td>
                <div class="display-label">
                    Description</div>
            </td>
        </tr>
        @foreach (var item in Model)
        { 
            <tr>
                <td>
                    <div class="display-field">
                        item.Unitno
                    </div>
                </td>
                <td>
                    <div class="display-field">
                        item.Trackno
                    </div>
                </td>
                <td>
                    <div class="display-field">
                        item.Description
                    </div>
                </td>
            </tr>

        }
    </table>
</fieldset>

【问题讨论】:

    标签: jquery json telerik


    【解决方案1】:
     $.ajax(
         {
             type: 'POST',  //or GET or PUT etc see the DOCS for more info
             contentType: 'application/json; charset=utf-8',
             data:{id:articleID },
             dataType: 'json',
             url: '@Url.Action("Tracks", "Home")',
             success: function (result) {
                 alert('Success');
             },
    
             error: function (error) {
                 alert('Fail');
         }
     });
    

    jquery ajax

    【讨论】:

    • 不是 100% 完美的。我可以进入跟踪操作,然后部分视图将填充 linq 查询的结果。但是部分视图不会显示在页面上。
    • @NotFairTreated 我不明白您在获取/加载部分视图时遇到问题?
    • 我会尽力解释。如果我在 vs2010 中按 F11,我可以进入所有方法和 cshtml 文件。通过执行这些步骤,我可以看到轨道中的模型将填充正确的值。 (@foreach(模型中的变量项)逐步执行)但返回时:return PartialView("Tracks", tracking);它失败。显示警报('失败')。所以结果由于某种原因并不好。
    • @NotFairTreated 问题似乎与您的观点有关,您可以进入您的观点吗?在error 回调中做alert(error.responseText) 还检查萤火虫在响应中得到什么?
    猜你喜欢
    • 2017-12-01
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 2017-08-18
    • 2020-03-08
    • 2011-06-28
    相关资源
    最近更新 更多