我有一个名为CasesController
的控制器,它又包含以下方法:
[HttpGet("Cases/Active")]
public IActionResult GetActive()
{
return View("CaseList", _caseRepository.GetAll());
}
此外,CaseList.cshtml
文件包含以下格式:
<form class="form" method="get" action=".">
</form>
(实际上,这个表单是在CaseList
视图中呈现的局部视图中,我想从几个不同的控制器方法中使用相同的部分。此表单用于GET
返回原始页面,其中包含一些过滤参数,以限制显示的记录数。
我希望此表单可以回发到//Server/Cases/Active?FormField1=&FormField2=
而是将方法名称排除在GET
发送到的网址之外://Server/Cases/?FormField1=&FormField2=
如何让浏览器识别返回生成页面的URL的完整路径?
答案 0 :(得分:1)
如果您希望网址与您所在的网页完全相同但没有查询字符串,则需要使用问号(.
)代替句点(?
)或留空。例如,假设我们位于包含网址http://www.example.com/path/thing?value=1
的网页上,则目标操作将按如下方式计算:
. => http://www.example.com/path/?form=1
? => http://www.example.com/path/thing?form=1
注意:这在任何地方都没有很好地定义。例如,您可能会发现不同的浏览器会给您不同的结果。因此,不指定操作URL是非常糟糕的做法。