Ajax调用返回带有“/ n”标记的数据

时间:2013-09-27 20:41:07

标签: ajax entity-framework asp.net-mvc-4

嘿所有我一直在寻找一段时间并且没有太多运气找到这背后的理由,所以希望有人可以帮助我。我不明白为什么它会返回换行符

$('#tbl tr td').click(function () {

// Here selection ="           710-610A      "  spaces are included 
             var selection = $(this).text();
             alert(selection)

            $.ajax({                     
                    type: "Post",
                    url: "/Home/Index/",
                    dataType: "json",
                    data: {  grpCode: selection },
                    success: function (ResponseData) {},
                    error: function (errorResponse) {
                    alert('AJAX Call Failed');
                }

 // When passed grpCode = "\n                  710-610A\n          "
   I dnt understand why theres so many spaces along with it 
    [HttpPost]
    public ActionResult Index(string grpCode)
    {                    
        // do something
    }

我认为这与我在View

中显示表格的方式有关
 <table id="tbl">
    <tr>
        <th>
            Groups
        </th>
    </tr>

 @foreach (var item in Model.groupCodesList.Select(m=> m.Group_Code).Distinct())
  {
      <tr>
          <td>
              @item
           </td>
      </tr>
  }
</table>

我使用EF Code First检索数据

2 个答案:

答案 0 :(得分:0)

我通过在文本中添加.trim()来解决问题

$('#tbl tr td').click(function () {
         var selection = $(this).text().trim();
         alert(selection)

有人知道为什么这是一个问题吗?

答案 1 :(得分:0)

的内容
          <td>
              @item
          </td>

"
              @item
          "

(作为多行字符串文字)

通常,在HTML中,主要忽略空白,但它们仍然是内容的一部分。它们必须是,你可以使用CSS white-space使它们可见(如<pre>)。因此,当您使用JQuery的.text()时,您将获得完整的内容,包括看似冗余的空白。

如果确保首先没有空格,

<td>@item</td>

不会插入额外的空格。