我有一個按鈕,我通過按鈕在我的控制器中觸發一個動作。該按鈕具有用于控制器、路由 ID 和操作的標簽助手(見下文):
(為了可讀性而插入換行符)
<div class="input-group-append">
<button
class="btn btn-outline-secondary"
type="button"
asp-controller="Home"
asp-route-Id="@Model.Project.Id"
asp-action="UploadDocument"
id="uploadDocument"
>
Upload
</button>
</div>
這是IActionResult控制器中的:
//POST - Upload document
[HttpPost("~/Home/UploadDocument")]
public IActionResult UploadDocument(int id, IFormFile files)
{
//Get and upload file
if (files != null)
{
if (files.Length > 0)
{
//Getting FileName
var fileName = Path.GetFileName(files.FileName);
//Getting file Extension
var fileExtension = Path.GetExtension(fileName);
// concatenating FileName FileExtension
//var newFileName = String.Concat(Convert.ToString(Guid.NewGuid()), fileExtension);
var objfiles = new Document()
{
Id = 0,
Name = fileName,
FileType = fileExtension,
ProjectId = id
};
using (var target = new MemoryStream())
{
files.CopyTo(target);
objfiles.DataFiles = target.ToArray();
}
_db.Files.Add(objfiles);
}
}
_db.SaveChanges();
return View(Update(id));
}
我在第一行代碼上放置了一個斷點,UploadDocment然后單擊了按鈕。什么都沒有發生。斷點從未被擊中。我不確定為什么這不起作用。我有:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
...在我的_ViewImports.cshtml檔案中,標簽助手可以處理其他按鈕。
uj5u.com熱心網友回復:
- 該
asp-action...標簽的助手是在使用<a>和<form>元素,沒有<button>。 - 此外,問題的另一部分是
type="button"您的<button>.type="button"表示該按鈕在單擊時不執行任何操作。
- 所以,糾正一些事情:
- 更改您
<button>要type="submit"提交的父<form>元素。 - 并將
asp-action=""和asp-controller=""helpers移動到您的<form>.
- 更改您
uj5u.com熱心網友回復:
你需要把<button>里面<form method="post"></form>.
<form method="post">
<button class="btn btn-outline-secondary"
asp-controller="Home"
asp-route-Id="@Model.Project.Id"
asp-action="UploadDocument"
id="uploadDocument">Upload</button>
</form>
生成的html:

結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/371693.html
標籤:C# 。网 asp.net-mvc asp.net核心 asp.net-mvc-5
上一篇:測驗時奇怪的處理行為
