c# - 提交表单时有什么方法可以生成路由值而不是查询参数?
问题描述
我有以下表格。
<form method="get">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<select asp-for="@Model.MonthCode" asp-items="@Model.InvoiceDates" class="form-control">
</select>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<button type="submit" class="btn btn-success">Update</button>
</div>
</div>
</div>
</form>
我正在使用该get
方法(而不是post
),因为我不想OnGetAsync()
在OnPostAsync()
. 这两种方法会做完全相同的事情。这样,我不需要OnPostAsync()
.
但是,缺点是数据作为查询参数传递。
https://localhost:44322/Invoices?MonthCode=24243
我更喜欢这个网址:
https://localhost:44322/Invoices/24243
有没有办法让这段代码产生第二个 URL?我更喜欢我的用户没有得到关于参数是什么的描述。
解决方案
感觉更清洁的解决方案可能是将代码提取OnGetAsync()
到帮助方法中,然后从OnPostAsync()
.
除非实现OnGetAsync()
非常小,否则 Id 通常会避免将过多的逻辑放入页面中。(我们在过去使用 Web 表单(.aspx 页面)进行了尝试,但结果并不好!;-))
推荐阅读
- javascript - 我可以在不使用firebase数据库的情况下将参数保存在firebase中并在我的网站上以js文件读取吗?
- javascript - 显式数组属性与 JavaScript 中的变量
- python - 我是 python 新手,我目前正在使用 python 3x,但我总是收到这个错误,有人可以帮助我吗
- c# - 为什么添加参数化构造函数时默认构造函数不起作用?
- android - 设置视图和材料设计导航
- c# - IEnumerable
'不包含异步任务方法的'GetAwaiter'的定义 - spring - HTTP 状态 500 - 处理程序 [Controller Object] 没有适配器:DispatcherServlet 配置需要包含 HandlerAdapter
- objective-c - 可可绑定到阵列控制器崩溃
- python - 如何使用 Boto3 get_query_results 方法从 AWS Athena 创建数据框
- python - Python3.5 元组理解真的有这么有限吗?