【发布时间】: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