无法使用mvc4将数据附加到jquery中的表

时间:2016-08-24 11:43:43

标签: javascript jquery asp.net-mvc-4

我正在尝试将数据绑定到html表,如下所示。

function showDocumentmetaData(docid) {
        $.ajax(
               {
                   type: "GET",
                   data: { upld_id: docid },
                   dataType: "html",
                   url: '/documentVerification/GetDocumentmetadata',
                   success: function (data) {
                       alert(data);
                       $('#details').html("");
                       $('#details').html(data);
                       alert(data);
                   }
                   , error: function (error) {
                   }
               });
    }
  <table id="details" width="100%" border="0" cellspacing="0" cellpadding="0" class="dataTable" style="text-align:right !important; border-bottom:0"></table>

GetDocumentmetadata将返回部分视图,如下所示。

@model c3card.DAL.uploadanddocContentviewModel
 @{ 
      string data="";
     int textId;
  }
@foreach (var content in Model.uploadanddocContent)
{
    data += "<tr  class='no-bdr right-align'><td width='30%' scope='col'>" + content.content_Label + "</td>";
    data += "<td width='60%' scope='col'>";
    var cntrolType = content.content_controlType;
    var fieldtype = content.content_fieldType;
    switch (cntrolType)
    {
        case "TextBox":
            if (fieldtype == "varchar")
            {
                data += "<div class='form-box form-box-default'> <input type='text' value='"+content.upld_Value+"' onkeypress='return ValidateAlphaNumeric(event);' id='txtBox" + textId + "' name='" + content.content_Label + "'  class='txtBox form-control validate[required]' maxlength='30' placeholder=''></div></td> ";
            }
            else if (fieldtype == "datetime")
            {
                data += " <div style='width:105%;'><input type='text' value='" + content.upld_Value + "' id='txtBox" + textId + "'  name='" + content.content_Label + "' style='width:90%;margin-right:2px;height:38px;'  class='form-box form-box-default txtBox form-control datepicker validate[required, custom[date,future[now]]]' placeholder=''></div></td> ";
            }
            break;

    }
    textId++;
    data += "</tr>";
}

当我追踪上面的代码变量时,名为data的数据将从模型中获取数据而没有任何问题。但是成功的功能数据不会附加到详细信息表。实际上它显示为null。我提出警告并检查。我可以知道我哪里错了吗?提前谢谢。

当我在局部视图中放下代码时,它可以正常工作。

<div class="forms">
          @foreach (var content in Model.uploadanddocContent)
          {
              <h1>@content.content_Label</h1>
              switch (content.content_controlType)
              {
                  case "TextBox":
                      if (content.content_fieldType == "varchar")
                      {
                        <input type='text' id="varchar" value=@content.upld_Value onkeypress='return ValidateAlphaNumeric(event);' class='txtBox form-control validate[required]' maxlength='30' placeholder='' />
                      }
                      else if (content.content_fieldType == "datetime")
                      {
                        <input type='text' value=@content.upld_Value  id="varchar" style='width:90%;margin-right:2px;height:38px;' class='form-box form-box-default txtBox form-control datepicker validate[required, custom[date,future[now]]]' placeholder='' />
                      }
                      break;
              }
          }
   </div>
        <input type="button" class="btn btn-primary btn-cons submitGreen" value="Update" onclick='updatemetaData(@Model.upldId)' />
        <input type="button" value="cancel" class="btn btn-primary btn-cons search" onclick='cancel(@Model.upldId)' />

但我希望第一种方法可以运作。有可能吗?

1 个答案:

答案 0 :(得分:2)

你应该附加到表的tbody,不要改变它的html。

试试这个:

$('#details').find('tbody').remove();
$('#details').find('tbody').append(data);

希望它有所帮助。