Вот рабочая демонстрация, как показано ниже:
Модель:
public class Test
{
public int UserId { get; set; }
public ErrorCode Code { get; set; }
}
public enum ErrorCode
{
None = 0,
Unknown = 1,
ConnectionLost = 100,
OutlierReading = 200
}
Вид:
btn
не поддерживает помощника по тегам. Вам необходимо используйте форму для вызова API:
@model Test
<form asp-action="TestEnum" asp-controller="Home" asp-route-to="@Model.Code">
<input type="submit" class="btn btn-danger" value="PassEnum" />
</form>
<form asp-action="TestModel" asp-controller="Home" asp-all-route-data="@(new Dictionary<string, string> { { "to.Code", Model.Code.ToString() },{ "to.UserId",Model.UserId.ToString()} })">
<input type="submit" class="btn btn-danger" value="PassModelWithEnum" />
</form>
Контроллер:
public IActionResult Index()
{
//for easy testing,I set the value by default...
var model = new Test()
{
UserId =1,
Code = ErrorCode.OutlierReading
};
return View(model);
}
public IActionResult TestModel(Test to)
{
return RedirectToAction("Index");
}
public IActionResult TestEnum(ErrorCode to)
{
return RedirectToAction("Index");
}
Результат: