如何解决.Net Core MVC Web应用程序无法将值从View传递到Controller
public class Image
{
public string FileName { get; set; }
public string ImagePath { get; set; }
}
@model Uploader.Models.Image
<h1>View Image</h1>
<form asp-controller="Images" asp-action="Download" method="post" enctype="multipart/form-data">
<img src="~/Images/@Model.FileName" />
<input type="submit" value="Download Image" class="btn btncolour btn-primary" />
@Model.FileName
</form>
最后一个Model.Filename,我只是在测试以查看是否存在该值。据我所知,这里一切都很好,当我提交此表单时,应该将模型中的值(特别是Image.FileName)发回到服务器上。
我的控制器方法:
[HttpPost]
public async Task<IActionResult> Download(Image image)
{
if (image.FileName == null)
return Content("filename not present");
var path = Path.Combine(
Directory.GetCurrentDirectory(),"wwwroot",image.FileName);
var memory = new MemoryStream();
using (var stream = new FileStream(path,FileMode.Open))
{
await stream.copyToAsync(memory);
}
memory.Position = 0;
return File(memory,GetContentType(path),Path.GetFileName(path));
}
我的代码在回发时使用此方法,但是image.FileName
始终为null,即使在View本身上,我也可以看到model.FileName
确实包含一个值。
有人可以解释我在做什么错吗?
非常感谢
解决方法
FileName用于图像的src,但不作为输入。单击提交时,仅输入字段值在请求中发送。
尝试添加名称为“ FileName”的文本输入,然后输入一些值,然后单击“提交”。然后,您应该可以在控制器方法中接收该值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。