簡體   English   中英

如何使用從Jquery到HTML Helper剃須刀的值

[英]How to use value from Jquery to Html helper razor

在JavaScript中

   <script>
           var xmlHttpRequest = new XMLHttpRequest();
           xmlHttpRequest.open("POST", '@Url.Action("****", "****")',true);

           xmlHttpRequest.onloadend = function() {
               @{
                     var res = (UserResponseMvc) TempData["UserResponse"];  
                }
                @Html.ShowAlert(res?.Message)
           }

           xmlHttpRequest.send();
   </script>

在控制器中

public ActionResult Upload() {
       //code

        TempData["UserResponse"] = new UserResponseMvc
        {
            Success = true,
            Message = "Upload Success"
        };

        return View();

}

在這段代碼中,代碼不知道res變量。

如何在此處使用res變量?

我用Asp.net Mvc代碼編寫。

請幫助我。

我認為,如果僅函數顯示消息,則不會發生ShowAlert,那么它應該是javascript函數。

你不能 原因是他們不在同一時間“生活”。 Razor變量是“服務器端變量”,在將頁面發送到“客戶端”后,它們不再存在。

當服務器收到視圖請求時,它僅使用HTML,CSS和Javascript代碼創建視圖。 沒有C#代碼,所有這些都被“翻譯”為客戶端語言。

當視圖仍在服務器上時,存在Java代碼DO,但它沒有意義,將僅由瀏覽器執行(再次是客戶端)。

這就是為什么您可以使用Razor變量來更改HTML和Javascript而不是相反的原因。 嘗試查看您的頁面源代碼(在大多數瀏覽器中為CTRL + U),那里沒有C#代碼的跡象。

簡而言之:

  1. 服務器收到請求。
  2. 服務器創建“獲取”視圖,計算並轉換視圖中嵌入的所有C#代碼,並將其轉換為CSS,Javascript和HTML。
  3. 服務器將視圖的客戶端版本返回給瀏覽器,作為對請求的響應。
  4. 瀏覽器呈現頁面並執行所有Javascript

請參閱如何將值從javascript變量傳遞到razor變量?

就您而言,我有一些文件供您參考。

jQuery Ajax文件上傳

使用MVC 4和Ajax上傳文件

您可以這樣:

視圖

<input type="button" value="ClickToSend" onclick="sendToAction()" />

<script>
    function sendToAction() {
        var res = ["Upload1", "Upload2", "Upload3"]; // Sample

        jQuery.ajax({
            type: "POST",
            url: "@Url.Action("Upload")", // Upload is your action in controller
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(res),
            success: function (data) { alert(data); },
            failure: function (errMsg) {
                alert(errMsg);
            }
        });
    }
</script>

行動

[HttpPost]
public ActionResult Upload(List<String> res)
{
   return View();
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM