2012-12-03 2 views
2

ASP.NET MVC3에 탭 페이지 웹 시스템을 작성하고 있는데 ajax.BeginForm을 사용할 때입니다. 부분보기는 div를 업데이트하는 데 사용되지 않고 페이지로 표시됩니다.mvc3 partial view ajax 게시물 부분 뷰를 페이지로 반환

코드에 어떤 문제가 있습니까? 왜 작동하지 않는거야? 도와 주셔서 감사합니다!

나는 그것을 알아낼 수는 있지만 주위를 둘러 볼 수는 없습니다. 여기 내 코드입니다 :

컨트롤러 :

public ActionResult Index(int id) 
    { 
     var shareholder = db.shareholder.Include("company").Include("groups"); 
     return PartialView("Index", shareholder.ToList()); 
    } 

    // 
    // GET: /Shareholder/Create 

    public PartialViewResult Create() 
    { 
     ViewBag.company_id = new SelectList(db.company, "id", "name"); 
     ViewBag.groups_id = new SelectList(db.groups, "id", "name"); 
     return PartialView("Create"); 
    } 

    // 
    // POST: /Shareholder/Create 

    [HttpPost] 
    public ActionResult Create(shareholder shareholder) 
    { 
     if (ModelState.IsValid) 
     { 
      db.shareholder.AddObject(shareholder); 
      db.SaveChanges(); 
      return RedirectToAction("Index", new { id = shareholder.company_id }); 
     } 

     ViewBag.company_id = new SelectList(db.company, "id", "name", shareholder.company_id); 
     ViewBag.groups_id = new SelectList(db.groups, "id", "name", shareholder.groups_id); 
     return PartialView("Create", shareholder); 
    } 

부분보기 :

<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script> 
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" 
    type="text/javascript"></script> 
<script src="<%: Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script> 
<script src="<%: Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript"></script> 
<% using (Ajax.BeginForm("Create", "Shareholder", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "tabs-2", InsertionMode = InsertionMode.Replace })) 
    { %> 
<%: Html.ValidationSummary(true) %> 
<fieldset> 
    <legend>shareholder</legend> 
    <div class="editor-label"> 
     <%: Html.LabelFor(model => model.company_id, "company") %> 
    </div> 
    <div class="editor-field"> 
     <%: Html.DropDownList("company_id", String.Empty) %> 
     <%: Html.ValidationMessageFor(model => model.company_id) %> 
    </div> 
    <div class="editor-label"> 
     <%: Html.LabelFor(model => model.name) %> 
    </div> 
    <div class="editor-field"> 
     <%: Html.EditorFor(model => model.name) %> 
     <%: Html.ValidationMessageFor(model => model.name) %> 
    </div> 
    <p> 
     <input type="submit" value="Create" /> 
    </p> 
</fieldset> 
<% } %> 
<div> 
    <%: Html.ActionLink("Back to List", "Index") %> 
</div> 

부분 뷰 호출 뷰 : 당신이 jquery.unobtrusive-ajax.min.js을 포함해야

<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script> 
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" 
    type="text/javascript"></script> 
<script src="<%: Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script> 
<script src="<%: Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript"></script> 
<script type="text/javascript"> 
    var count = 2; 
    $(document).ready(function() { 
     $("#tabs").tabs(); 
     getContentTab (1, "/Company/Details/<%=Model.id %>"); 
    }); 

    function getContentTab(index, url) { 
     $.ajax({ 
      url: url, 
      success: function(result) { 
       for (var i = 0; i <= count; i++) { 
        document.getElementById("tabs-" + index).style.display = 'none';      
       } 
       $("#tabs-" + index).html(result); 
       document.getElementById("tabs-" + index).style.display = 'block'; 
       $.validator.unobtrusive.parse("form"); 
      }, 
      error: function (xhr, status, error) { 
       alert(error); 
      }, 
     }); 
    } 
</script> 
<h2> 
    <%=Model.name %></h2> 
<div id="tabs"> 
    <ul> 
     <li><a href="#tabs-1" onclick="getContentTab(1, '/Company/Details/<%=Model.id %>');"> 
      <%= VOWWebsite.Resource.Details%></a></li> 
     <li><a href="#tabs-2" onclick="getContentTab(2, '/Shareholder/Index/<%=Model.id %>');"> 
      <%= VOWWebsite.Resource.Shareholders%></a></li> 
    </ul> 
    <div id="tabs-1"> 
    </div> 
    <div id="tabs-2"> 
    </div> 
</div> 

답변

1

을 내 페이지 :

<script src="<%: Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js") %>" 
type="text/javascript"></script> 
+0

지금 추가해 드리겠습니다. 완벽한 덕분입니다! – PhDelodder

관련 문제