1. 程式人生 > >ASP.NET MVC下通過JQuery$.ajax提交資料,控制器接收資料

ASP.NET MVC下通過JQuery$.ajax提交資料,控制器接收資料

今天在實現一個小功能時,這個是一個彈出的模態框,然後點選儲存的時候,通過Ajax將文字框中的內容傳到後臺控制器,控制器執行相應的操作,在將內容儲存到資料庫。然後問題就出在用Ajax傳到控制器的時候,控制器接收不到引數。因為寫MVC也比較少,這方面不是很會,所以還是記錄一下。


一開始我的程式碼是這樣寫的:

前端ajax程式碼:


後端控制器:


控制器方法寫成:public JsonResult Update(string id_,string explain)則提交後跳不到這個方法裡面去。上面的寫法可以跳到裡面,但是兩個欄位都是null

除錯查看了Request物件,裡面也是找不到提交過來的資料。

後來看了同學之前寫的程式碼,他是這樣寫的:



這樣寫後臺控制器方法就可以接受到兩個引數的值;

不過現在還不是很能理解這行程式碼的意思 var jsonword = eval('(' + '{"id":"' + id + '","explain":"' + explain_text + '"}' + ')');

查了一下eval函式:


上面程式碼exal裡面的引數好像也沒有要計算和執行的,我把這個函式去掉除錯了一下;

var jsonword = '(' + '{"id":"' + id + '","explain":"' + explain_text + '"}' + ')';

結果控制器方法就接受不到引數了

然後我們要傳的引數格式是JSON,JSON.stringify()意義:


返回的是JSON文字字串。

我再把data引數改一下:data: '{"id":"' + id + '","explain":"' + explain_text + '"}',

除錯執行,結果顯示在控制器方法是可以接收到引數的。說到底就是data引數的問題。

在菜鳥教程查一下引數


引數是String型別,上面第一種不行的寫法,似乎之前自己也寫過,網上也很多都是那樣寫,但是他們究竟能不能執行,我不知道,反正我是不行。折騰半天,就是引數型別沒有仔細看是什麼型別的。

後面稍微改進一下方法的引數,先建一個類


把控制器方法引數換成改類的物件,類的屬性要跟前端傳過來的引數欄位要一樣。

 

在 Asp.Net MVC中有個 Model Binder的概念:

  • 無論請求是否由帶參的action方法生成,Model Binder都會自動執行。
  • Model Binder會通過方法的元引數迭代,然後會和接收到引數名稱做對比。如果匹配,則響應接收的資料,並分配給引數。
  • 在Model Binder迭代完成之後,將類引數的每個屬性名稱與接收的資料做對比,如果匹配,則響應接收的資料,並分配給引數

2018/6/25 補充:

把兩邊的冒號先去掉:{"id":88,"name":"alin"} Ajax提交的資料這樣的話,說明第一個引數id是int型別,第二個引數name是string型別。所以再控制器的方法中得這樣寫 public JsonResult Server(int id,string name);

目前只知道這兩種資料型別的寫法,感覺也應該只有這兩種資料型別的寫法。

相關推薦

ASP.NET MVC通過JQuery$.ajax提交資料控制器接收資料

今天在實現一個小功能時,這個是一個彈出的模態框,然後點選儲存的時候,通過Ajax將文字框中的內容傳到後臺控制器,控制器執行相應的操作,在將內容儲存到資料庫。然後問題就出在用Ajax傳到控制器的時候,控制器接收不到引數。因為寫MVC也比較少,這方面不是很會,所以還是記錄一下。一

ASP.NET MVC 自定義模型繫結去除字串型別前後的空格

直接貼程式碼了: SkyModelBinder.cs using System.ComponentModel; using System.Linq; using System.Web.Mvc; namespace MvcSample.Extensions { public cl

通過ASP.NET MVC框架 + 原生JavaScript + Ajax + SQL SERVER 實現一個簡單的有論壇功能的網站(有通過iis發布的例子)

簡單的 接下來 發送 思維 學會 control javascrip 數據庫 今天   ASP.NET MVC. M 為Model模型層, V 為View視圖層, C 為Controller控制層。要想使用MVC框架來寫網站就需要了解M V C 的作用分別為哪些。給大家簡單

通過ASP.NET MVC框架 + 原生JavaScript + Ajax + SQL SERVER 實現一個簡單的有論壇功能的網站(有通過iis釋出的例子)

  ASP.NET MVC. M 為Model模型層, V 為View檢視層, C 為Controller控制層。要想使用MVC框架來寫網站就需要了解M V C 的作用分別為哪些。給大家簡單的介紹一下:     1.當你的這個網站要與資料庫互動的時候,你可以使用EF建立一個數據庫模型,也可以用類存放你所需互動

Asp.net mvc 載文件

設置 var value public ppa response oot turn cat 前言 最近有需求需要下載文件,可能是image的圖片,也可能是pdf報告,也可能是微軟的word或者excel文件。 這裏就整理了asp.net mvc 和asp.net web

ASP.NET MVC的異步Action的定義和執行原理

urn des {0} 不同 exce .class 遠程 是否 了解 Visual Studio提供的Controller創建向導默認為我們創建一個繼承自抽象類Controller的Controller類型,這樣的Controller只能定義同步Action方法。如果我們

ASP.NET MVC自定義錯誤頁和展示錯誤頁的幾種方式

提供服務 one url attribute 運行 16px execute 釋放 namespace 在網站運行中,錯誤是不可避免的,錯誤頁的產生也是不可缺少的。 這幾天看了博友的很多文章,自己想總結下我從中學到的和實際中配置的。 首先,需要知道產生錯誤頁的來源,一種

ASP.NET MVC拉框聯動

這個case主要是我在做專案的時候遇到一個需要根據input控制元件輸入的內容,動態填充dropdown list中的內容, 實現二者聯動的需求。在搜尋了一些資源後,這篇部落格解決了我的問題,所以記錄並轉載一下。 轉載自: https://www.jb51.net/article/88986.htm 資料

ASP.NET MVC中使用UEditor無法提交的解決辦法

很簡單的一個ajax提交,卻怎麼都不成功 $.ajax({ type: "POST", url: "/mms/riskmanage/commitreply", data: { ID: params.ID ,

ASP.NET MVC基於異常處理的完整解決方案

EntLib的異常處理應用塊(Exception Handling Application Block)是一個不錯的異常處理框架,它使我們可以採用配置的方式來定義異常處理策略。而ASP.NET MVC是一個極具可擴充套件開發框架,在這篇文章中我將通過它的擴充套件實現與

14、ASP.NET MVC入門到精通——Ajax

Unobtrusive Ajax使用方式(非入侵式) 非入侵式,通俗來講:就是將嵌入在Html中的JavaScript全部取出來,放在單獨的 js 檔案中,html標籤中不要出現任何onclick、onload 等 Unobtrusive Ajax :方便程式設計師編寫簡單易於維護的ajax程式碼(C

ASP.NET MVC通過FileResult向瀏覽器傳送檔案

FileResult 是一個抽象類,繼承自 ActionResult。在 System.Web.Mvc.dll 中,它有如上三個子類,分別以不同的方式向客戶端傳送檔案。   在實際使用中我們通常不需要直接例項化一個 FileResult 的子類,因為 Controller

ASP.NET MVC 拉框的傳值的兩種方式

        以前使用WebForm變成時,下拉框傳值只需直接在後臺繫結程式碼就可以了。現在我們來看看在MVC中DropDownList是如果和接受從Controller傳過來的值的。 第一種:使用DropDownList     控制器程式碼: p

ASP.NET MVC網站中 return RedirectToAction()形式引數的傳遞與接收

cs: return RedirectToAction("Business", "Home", new { currentUsername = username}); 前臺cshtml中: <

ASP.NET MVC匯出excel(資料量大非常耗時的非同步匯出)

要在ASP.NET MVC站點上做excel匯出功能,但是要匯出的excel檔案比較大,有幾十M,所以匯出比較費時,為了不影響對介面的其它操作,我就採用非同步的方式,後臺開闢一個執行緒將excel匯出到指定目錄,然後提供下載。匯出的excel涉及到了多個sheet(工作簿),表格合併,格式設定等,所以採用了N

ASP.NET MVC修改名稱空間後報錯未能載入型別'WebApplication1.MvcApplication“

説明: この要求の処理に必要なリソースの解析中にエラーが発生しました。以下の解析エラーの詳細を確認し、ソース ファイルに変更を加えてください。 パーサー エラー メッセージ: 型 'WebApplic

ASP.NET MVC案例教程(基於ASP.NET MVC beta)——第四篇:傳遞表單資料

 1<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Release.aspx.cs" Inherits="MVCDemo.Views.Announce.Release"%> 2<%@ Import Namespace="

Asp.net MVC Razor檢視模版動態渲染PDFRazor模版生成靜態Html

1.前言       上一篇文章我開源了輪子,Asp.net Core 3.1 Razor檢視模版動態渲染PDF,然後,很多小夥伴有很多私信找我了。那麼我下面就簡單的給大家說一下,關於小夥伴問的這些問題。 我專案的電子簽章部分程式碼可否開源?   答:我專案電子簽章也是使用第三方的電子簽章,電子

Asp.Net MVC4入門指南(5):從控制器訪問資料模型

在本節中,您將建立一個新的MoviesController類,並在這個Controller類裡編寫程式碼來取得電影資料,並使用檢視模板將資料展示在瀏覽器裡。 在開始下一步前,先Build一下應用程式(生成應用程式)(確保應用程式編譯沒有問題) 用滑鼠右鍵單擊Controller資料夾,並建立一個新的

ASP.NET WEB API微信支付通知介面返回xml資料微信伺服器不識別問題

最近開發微信小程式中用到了微信支付功能,介面開發用的ASP.NET WEB API;在支付成功後,介面接受到微信伺服器的支付通知結果,處理完資料,介面返回給微信服務資料時出現了問題。微信伺服器識別不到返回的資料,導致重複通知。最終解決程式碼如下: protect