如何在MVC中单击按钮时将模型从视图传递到控制器?

索引 – 查看

@model SendAFaxWeb.Models.Send //view start here  

Test Upload File

@Html.AntiForgeryToken()
@Html.TextBoxFor(m => m.Recipients[0].Number)
@if (Model != null) { foreach (var item in Model.Documents) {
  • FileName: @item.Name
  • } }

    Javascript- javascript不起作用

      $(document).ready(function () { $("#btnSend").click(function () { alert("button click"); e.preventDefault(); var model = @Html.Raw(Json.Encode(Model)) $.ajax({ type: 'post', url: '@Url.Action("Send", "Home")', data: JSON.stringify({ contact: model }), contentType: 'application/json; charset=utf-8', dataType: "json", success: function (data) { alert(data); } }); }); });  

    调节器

     public ActionResult Send(Send contact) { //some code here } 

    我试图通过使用javascript到控制器传递模型,但它无法正常工作。 javascript中的警报也不会弹出。 任何人都可以告诉我代码有什么问题。

    您已实现跨源安全性,如: @ Html.AntiForgeryToken() 。 所以你必须在AJAX调用中将该值作为参数传递,如下所示。

    AJAX:

     data:{__RequestVerificationToken:$('[name=__RequestVerificationToken]').val();} 

    您还必须在控制器中添加属性。

     [HttpPost] [ValidateAntiForgeryToken] public ActionResult Send(Send contact) 

    您可以使用以下代码执行此操作

     @model PK.LifeStyles.Web.Models.Reimbursement //model declaration on top  

    您的代码背后应该是这样的

      public ActionResult Save(Reimbursement data) { // your code } //just some random class public class Reimbursement{ public string Destination { get; set; } }