2013-07-25 2 views
1

я создать образец MVC приложения для проверки загрузки файла я прочитал это полезно post и сделать это, но клиент валидатор работает не так и дает мне ошибку моему всем коды:Почему загрузчик файлов не работает?

я прикрепил их в хедере тэге:

<script src="~/Scripts/jquery-1.8.2.min.js"></script> 
<script src="~/Scripts/jquery-ui-1.8.24.min.js"></script> 
<script src="~/Scripts/jquery.validate.min.js"></script> 
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script> 
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 

моя модель:

public class FIleModel 
{ 
    [Required, FileExtensions(Extensions = "csv", ErrorMessage = "Specify a CSV file. (Comma-separated values)")] 
    public HttpPostedFileBase myFile { get; set; } 
} 

ошибка:

Unhandled exception at line 4, column 9003 in http://localhost:6284/Scripts  
/jquery.validate.min.js 
    0x800a138f - JavaScript runtime error: Unable to get property 'call' 
    of undefined or null reference 

на мой взгляд:

@using (Html.BeginForm("FileUpload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) 
    { 
     @Html.ValidationSummary(); 
     <fieldset> 
      <legend>Registration Form</legend> 
      <ol> 
       <li class="lifile"> 
        @Html.TextBoxFor(m => m.myFile, new { type = "file" }) 
        @Html.ValidationMessageFor(m => m.myFile) 

       </li> 
      </ol> 
      <input type="submit" id="btnSubmit" value="Upload" /> 
     </fieldset> 
    } 
+0

Посмотрите на http://stackoverflow.com/questions/14659023/error-in-jquery-validate-js-in -mvc-4-project-with-jquery-1-9 –

ответ

0

Для загрузки файла, вы можете использовать этот код.

В контроллере:

[HttpPost] 
public ActionResult Create(EventModel eventmodel, HttpPostedFileBase file) 
{ 
    if (ModelState.IsValid) 
    { 

     //you can validate file here. if okay continue... 

     var filename = Path.GetFileName(file.FileName); 
     var path = Path.Combine(Server.MapPath("~/Uploads/Photo/"), filename); 
     file.SaveAs(path); 
     eventmodel.Url = filename; 

     _db.EventModels.AddObject(eventmodel); 
     _db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 
    return View(eventmodel); 
} 

И Вид:

<div> 
    Image 
    <input type="file" name="file" id="file" /> 
    @Html.HiddenFor(model => model.ImageUrl) 
    @Html.ValidationMessageFor(model => model.Url) 
</div> 
+0

какая шина? – whisk

+1

Я изменил свой ответ. Шина оставалась от моего старого кода для одной компании Tire. Спасибо за внимание. –

Смежные вопросы