2015-09-23 5 views
0

Итак, я пытаюсь выяснить, как обновить определенный элемент в файлах cshtml, таких как ярлык, например.Как обновить ярлык при нажатии кнопки

Поэтому ярлык в настоящее время <p>File ready for upload</p> и когда я нажимаю на кнопку, я хочу, чтобы изменить <p>Files must be a <b>.jpeg</b> <b>.jpg</b> <b>.png</b> <b>.bmp</b> file format.</p>

Я уже логика работает для загрузки и только позволяя эти форматы файлов, я просто хочу, чтобы предупредить пользователю, который им нужен, изменив этикетку, о которой я говорил выше. Я знаю, что это будет в моем catch (exception), так как я использую оператор try catch.

Мой код: Контроллер: FileSharings.cs

public ActionResult Create([Bind(Include = "Id,Title,Description,FileName,FileType,FileSize,Author,DateUploaded")] FileSharing fileSharing) 
    { 
     HttpPostedFileBase file = Request.Files.Get(0); 
     string fileName = Path.GetFileName(file.FileName); 
     string filePath = Path.Combine(Server.MapPath("~/Assets/"), fileName); 
     var allowedExtensions = new string[] { ".jpeg", ".png", ".jpg", ".bmp" }; 
     string fileExtension = Path.GetExtension(file.FileName).ToLower(); 
     string extension = Path.GetExtension(file.FileName); 

     try 
     { 
      if (Request.Files.Count > 0 && (ModelState.IsValid) && (allowedExtensions.Contains(extension))) 
      { 
       file.SaveAs(filePath); 
       FileInfo fileInfo = new FileInfo(filePath); 
       fileSharing.FileType = fileInfo.Extension.Remove(0, 1).ToLower(); 
       fileSharing.DateUploaded = DateTime.Now; 
       fileSharing.FileName = fileName; 
       fileSharing.FileSize = fileInfo.Length.ToString(); 
       fileSharing.Author = User.Identity.Name; 
       db.FileSharing.Add(fileSharing); 
       db.SaveChanges(); 
      } 
     } 

     catch (Exception) 
     { 

     } 

     return View(fileSharing); 
    } 
+1

Вы должны использовать js для этого в целом. Но если вы покажете свой вид, мы можем быть более конкретным –

+1

Проще просто добавить ошибку «ModelState» и вернуть представление (и показать его в 'ValidationMessageFor()', но если вы хотите отформатированный html, вам нужно будет добавить его в 'ViewBag' или свойство модели и использовать' @ Html.Raw() 'в представлении –

+1

И не должно быть в вашем блоке' catch' - вы никогда не будете генерировать исключение, потому что оператор 'if' никогда не вводится, если ваши типы файлов недопустимы –

ответ

0

#

public ActionResult Index() 
{ 
    ViewBag.MyMessageToUsers = "Files must be a <b>.jpeg</b> <b>.jpg</b> <b>.png</b> <b>.bmp</b> file format";; 

    return View(); 
} 

CSHTML.cs

@ViewBag.MyMessageToUsers 
+0

Большое вам спасибо! – Justin

0

JQuery Решение

// get file name 
    var filename = $("#file_input").val(); 

    // get extension 
    var ext = filename.replace(/^.*\./, ''); 

    // Validate 
    if($.inArray(ext, [ ".jpeg", ".png", ".jpg", ".bmp" ]) == -1) 
     $("#label_error").html("file extension not matched"); 
Смежные вопросы