2015-04-04 205 views
1

我在這裏再這麼早。 sad 我在mvc4中實現了基於標籤的局部視圖。我有3個選項卡,它顯示3個單獨的部分視圖,使用Ajax.ActionLink進行更改。每個部分視圖都是需要發佈到同一控制器內的不同操作的表單。動作鏈接工作正常{部分視圖顯示和更改}。我已經使用Ajax.BeginForm提交單個表單以防止完整回發。在表單提交的動作被調用和執行,但我的挑戰,我需要顯示當前的形式,但形式被清除,目前d形式內容retains-即重定向到同一Partialview 下面是我的代碼帶MVC的Ajax.ActionLink和Ajax.BeginForm局部視圖

ProjectIndex行動項目Controller.cs

[HttpPost] 
     public PartialViewResult Projectindex(Project collection, int ProjId) 
     { 
      //Save collection to DB.    

      return PartialView("_Project"); 
     } 

_Project.cshtml ..局部視圖

@model MyProject.Models.Project 

<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> 

@using (Ajax.BeginForm("Projectindex", new { ProjId = "3" }, new AjaxOptions 
{ 

    HttpMethod = "POST", 
     OnBegin = "myonbegin", 
    OnSuccess = "myonsuccess", 
    OnComplete = "myoncomplete", 
    OnFailure = "myonfailure", 
    LoadingElementId = "loader" // div with .gif loader - that is shown when data are loading 
})) 

{ @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    <fieldset> 
     <legend>Project</legend> 

     <div class="editor-label"> 
      @Html.EditorFor(model => model.ProjName) 
     </div> 


     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 

Project.cshtml主視圖

@Ajax.ActionLink(
"Project",   //Link Text 
"ProjectIndex",  //Public Method inside our Controller 
new AjaxOptions 
{ 
    HttpMethod = "GET",  //Do a HTTP Post 
    InsertionMode = InsertionMode.Replace, //Replace content 
    UpdateTargetId = "TabBody", //Target element ID 
} 
) 

<div id="TabBody"> 
    @Html.Partial("_Project") 
</div> 

唯一的挑戰是,形式犯規得到清除給我的印象是認爲不渲染。我嘗試添加一個的onSuccess和onFailure處使用,但沒有得到射擊..有人點我在正確的方向。在此先感謝

回答

1

我只是發回一個空的模型部分:

public PartialViewResult Projectindex(Project collection, int ProjId) 
{ 
    //Save collection to DB.    
    var model = new Project(); 
    ModelState.Clear(); 
    return PartialView("_Project", model); 
} 

新增ModelState.Clear(),我覺得這實在是所有需要。

強制html助手使用您更改的模型。否則,他們使用表格中的值提交

+0

謝謝你試過,但它沒有工作......我觀察到的是,它工作時,我重定向到另一個局部視圖,但沒有,當我做相同的局部視圖.. ...... – 2015-04-04 21:57:53

+0

@olufikayoolowoyo更新註冊。 'ModelState.Clear();' – Mackan 2015-04-04 22:00:27

+0

謝謝Mackan,我發現我的錯誤在哪裏。我忘了在部分視圖中包含Insertion.mode ..現在它們運行良好。 – 2015-04-06 18:05:29