2015-10-20 63 views
0

我有一個表格和一個上傳(我使用PLUploader),並希望用戶填寫文本框和選擇圖像在PLUploader中,當點擊提交按鈕,我通過圖像和textboxs價值的一個動作,我寫這篇文章的代碼,但alwaye我得到textboxs null值,但在行動中獲得的圖像,我覺得這個問題要撥打與形式和PLuploader的一個動作相關,傳遞上傳文件和形式提交值的一個動作在asp.net mvc

public ActionResult Insert(News news, HttpPostedFileBase file) 
     { 

// i get null in new but get file in HttpPostedFileBase 

      int result = 0; 

      HttpPostedFileBase FileData = Request.Files[0]; 

      string fileName = null; 

      fileName = Path.GetFileName(FileData.FileName); 

      if (ModelState.IsValid) 
      { 

       //do some thing 

      } 

      else 
      { 
       return View(news); 
      } 
     } 


@using (Html.BeginForm("Insert", "News", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
     <div class="col-xs-12"> 
       @Html.LabelFor(model => model.NewsTitle) 

        @Html.TextBoxFor(model => model.NewsTitle, new { @class = "form-control",@name="title" }) 

        @Html.ValidationMessageFor(model => model.NewsTitle) 

     </div> 

     <div class="col-xs-12"> 

       <div id="uploader" class="img-plc"> 
        <p>You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.</p> 
       </div> 
       <ul id="gallery"></ul> 
     </div> 
     <div class="col-xs-12"> 

       @Html.LabelFor(model => model.NewsText, new { @class = "text-right" }) 
       @Html.ValidationMessageFor(model => model.NewsText) 

       @Html.TextAreaFor(model => model.NewsText, new { @rows = "10", @cols = "80", @class = "text-editor", @name = "title" }) 

     </div> 

     <button type="submit">Submit</button> 

} 


    var uploader = $("#uploader").pluploadQueue({ 
      // General settings 
      runtimes: 'html5,gears,flash,silverlight,browserplus,html4', 
      url: '@Url.Action("Insert", "News")', 
      max_file_size: '10mb', 
      chunk_size: '1mb', 
      unique_names: true, 
      multi_selection: false, 
      multiple_queues: false, 

      // Specify what files to browse for 
      filters: [ 
       { title: "Image files", extensions: "jpg,png" } 
      ], 

      // Flash settings 
      flash_swf_url: '/Scripts/Moxie.swf', 

      // Silverlight settings 
      silverlight_xap_url: '/Scripts/Moxie.xap' 

     }) 

$('form').submit(function (e) { 
      var uploader = $('#uploader').pluploadQueue(); 

      // Files in queue upload them first 
      if (uploader.files.length > 0) { 
       // When all files are uploaded submit form 
       uploader.bind('StateChanged', function() { 
        if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) { 
         $('form')[0].submit(); 
        } 
       }); 

       uploader.start(); 
      } else { 
       alert('You must queue at least one file.'); 
      } 

      return false; 
     }); 

如何我可以修復這個? 我想要得到的消息和文件在這個動作

謝謝

回答

0

你沒有提交你的整個形式;而不是你捕獲與jQuery的事件處理程序提交行動onSubmit

$('form').submit(function (e) { ... }); 

如果你想這樣做,這樣,你就必須序列化此jQuery代碼塊中的News模型以及和後它與文件上傳一起。

我只是堅持HttpPostedFileBase在新聞模型,並使用正常形式提交雖然。

+0

感謝您的回放,你能告訴我示例代碼嗎? –