2014-10-29 61 views
0

我想在我的超级链接的点击div来加载partialview数据加载partialview,所以我写了这个代码来调用我的行动,返回Partialview,但无法装入我的部分观点无法使用Ajax调用

这是我Index.cshtml代码

@model IEnumerable<EcommerceApplication.Models.Products> 
    <link href="../../Content/Style.css" rel="stylesheet" type="text/css" /> 
    <script src="~/Scripts/jquery-2.1.1.min.js"></script> 
    <script src="~/Scripts/jquery.validate.min.js"></script> 
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('#create').on('click', function() { 
       $.ajax({ 
        type: 'GET', 
        contentType: 'application/json; charset=utf-8', 
        url: '/Home/Create', 
        success: function (data) { 
         $('#addItem').html(data); 
        }, 
        error: function (data) { 
         alert("Error In Loading Cart Item "); 
        } 
       }); 
      }); 
     }); 
    </script> 

    <p> 
     <a href="#" id="create">Create New</a> 
    </p> 
<div id="addItem"> 

</div> 

我的控制器的动作

[HttpGet] 
     public PartialViewResult Create() 
     { 
      var objProduct = new Products(); 
      return PartialView("_Create", objProduct); 
     } 

     [HttpPost] 
     public JsonResult Create(Products objProducts) 
     { 
      if (Request.IsAjaxRequest()) 
      { 
        _db.products.Add(objProducts); 
        _db.SaveChanges(); 
      } 
      products = _db.products.ToList(); 
      return Json(products); 
     } 

我partialview代码

@model EcommerceApplication.Models.Products 
@using (Ajax.BeginForm("Create", new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "post", OnSuccess = "UpdateList" })) 
{ 
    <fieldset> 
     <div class="editor-label"> 
      @Html.LabelFor(model => model.ProductName) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.ProductName) 
      @Html.ValidationMessageFor(model => model.ProductName) 
     </div> 
     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 
+0

@TrueBlueAussie:它是在同一个页面即指数。顺便说一句我已经更新了我的问题。 – 2014-10-29 10:19:22

+0

如果你只是浏览到'/ home/create',你会得到局部视图还是错误? – 2014-10-29 10:19:54

+1

尝试添加dataType:“text” – cosset 2014-10-29 10:20:57

回答

0

试试这个...

我已经改变了数据类型为HTML

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#create').on('click', function() { 
       $.ajax({ 
        type: 'GET', 
        dataType: 'html', 
        url: '/Home/Create', 
        success: function (data) { 
         $('#addItem').html(data); 
        }, 
        error: function (data) { 
         alert("Error In Loading Cart Item "); 
        } 
       }); 
      }); 
     }); 
    </script>