2017-02-23 8 views
0

私は、フォームは、剣道のコンボボックスと剣道のファイルアップロードで構成しました:ここSerializeをCSVファイル

@using (Html.BeginForm("Methode", "controller", FormMethod.Post)) 
{ 
    <p> Select country </p> 
    @(Html.Kendo().DropDownList().Name("country") 
     .DataTextField("Text").DataValueField("Value") 
     .DataSource(source => { source.Read(read => { 
      read.Action("GetMonth", "BudgetStage"); 
     }); 
    })) 
    <p> Select a .CSV file: </p> 
    @(Html.Kendo().Upload() 
     .Name("files") 
     .HtmlAttributes(new { accept = ".csv" }) 
    ) 
    <input type="submit" value="Submit" class="k-button k-primary" /> 
    <input type="button" value="Ajax" class="k-button k-primary" onclick="postData(this) 
} 

は、私のC#のコントローラのコードです:

public JsonResult methode(IEnumerable<HttpPostedFileBase> files, string country) 
{ 
    return Json("It's OK !", JsonRequestBehavior.AllowGet); 
} 

この送信ボタンをクリックすると動作しますが、コントローラはファイルと文字列の値を受け取りますが、私のページからJsonの戻り値を表示する必要があります。これを行うには

は、私はこのAjaxの機能を使用します。私はAjaxのボタンをクリックすると

function postData(button) { 
    var form = $(button).parents('form'); 
    if (form.kendoValidator().data("kendoValidator").validate()) { 
     $.ajax({ 
      type: "POST", 
      url: form.attr('action'), 
      data: form.serialize(), 
      error: function (xhr, status, error) { 
       alert(error); 
      }, 
      success: function (response) { 
       alert(response); 
      } 
     }); 
     return false; 
    } 
    return false; 
} 

、バックエンドの方法は、JSON値と私のJSコード表示、それを返し、呼び出しです。 問題は、選択されたCSVファイル(null)ではなく文字列値を受け取ることです。

ファイルと文字列を送信し、返されたJson値を表示するにはどうすればよいですか?

ありがとうございます。

答えて

0

問題はform.serialize()がこのシナリオで実際には機能しないということです。剣道では、ASP.NET MVC + JavaScriptと違うはずがないので、基本的にはthisがお手伝いします。