【问题标题】:How to update a label when clicking a button单击按钮时如何更新标签
【发布时间】:2015-12-20 16:06:21
【问题描述】:

所以我试图弄清楚如何更新 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 catchstatement。

我的代码: 控制器: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);
    }

【问题讨论】:

  • 一般来说你应该使用 js。但如果你展示你的观点,我们可以更具体
  • 最简单的方法是添加一个ModelState 错误并返回视图(并将其显示在ValidationMessageFor(),但如果您想要格式化的html,您需要将其添加到ViewBag 或a模型属性并在视图中使用@Html.Raw()
  • 而且它不应该在您的 catch 块中 - 您永远不会抛出异常,因为如果您的文件类型无效,则永远不会输入 if 语句
  • 感谢您的回答。现在问题已经解决了。感谢您的帮助

标签: c# html asp.net asp.net-mvc button


【解决方案1】:

#

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

【讨论】:

    【解决方案2】:

    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");
    

    【讨论】:

      猜你喜欢
      • 2017-07-20
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 2020-09-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多