2013-10-24 52 views
-2

我有一個asp.net mvc4應用程序,我將在其中使用.post ajax的函數在我的視圖中發佈變量。我有這個問題,我張貼在這裏:question,所以現在我試圖通過使用Ajax在Ajax && Razor的相同視圖中發佈一個新變量

觀來解決它:index.cshtml

<td> 
     <a href="#" onClick="openbox2('Validation de concept technique', 1)" data-arr="@fa.Id_element">Donner votre avis</a>. 
     </td> 

<form method="Post" action="/User/Validate_Expert_Decision" target="_parent"> 
    <span> 
     <b style="color:red" > 
     Votre justification * 
     <b /> 

      <br /> 
      <br /> 
     <textarea rows="10" cols="75" name="justification"></textarea> 
    </span> 
     <input type="hidden" name="element" value="@Request.Params["element"]" /> 

    <p> 
     <input type="submit" name="submit"> 
     <input type="button" name="cancel" value="Annuler" onClick="closebox()"> 
    </p> 
</form> 

javascript函數

function openbox2(formtitle, fadin) { 
     var self = $(this); 
     var arr = self.data('arr'); 
     $.post("/index.cshtml", { element: arr }); 

     var box = document.getElementById('box'); 
     document.getElementById('shadowing').style.display = 'block'; 

     var btitle = document.getElementById('boxtitle'); 
     btitle.innerHTML = formtitle; 

     if (fadin) { 
      gradient("box", 0); 
      fadein("box"); 
     } 
     else { 
      box.style.display = 'block'; 
     } 
    } 

控制器:Validate_Expert_Decision

public ActionResult Validate_Expert_Decision() 
{ 
    string id_element = Request.Params["element"]; 
    return RedirectToAction("Display_Task_List", new { id_project = id_project}); 
} 

問題是,我一直在string id_element = Request.Params["element"];得到id_element空值。

這個錯誤的原因是什麼?我該如何解決它?

+1

爲什麼你不使用@ Html.Form而不是編寫自己的表單元素? – Liam

+0

在這種情況下,@ Html.Form可以改變什麼? –

+0

@Liam如果我理解你,你沒有解決方案。感謝您的介入 –

回答

2

如果你想發佈您必須使用URL在本模式的Ajax請求:在您的Ajax請求

/Area/Controller/Action 

您指定視圖名稱,但網址爲Ajax請求必須是:

$.post("@Url.Action("ActionName, ControllerName, new { Area = "AreaName" }")", { element: arr }); 

如果你沒有區域,只要刪除最後的爭論。

相反的Request.Params["element"]可以輕鬆獲得通過argumant您的變量動作方法:

public ActionResult Validate_Expert_Decision(string element) 

**如果你想了解ASP.Net MVC我建議你讀這本書: Pro ASP.Net MVC 4

這是我讀過的最好的書之一

相關問題