asp-page标签帮助器在表单内插入编码的url

时间:2018-02-09 17:16:04

标签: asp.net-mvc asp.net-core razor-pages

我有一个带有两个页面处理程序的剃刀页面:

public IActionResult OnGetDisTest(int Id)
{            
    discussion = _service.GetDiscussion(Id, null);
    return Page();
}
public IActionResult OnGetDisTestThread( int Id)
{            
    discussion = _service.GetDiscussion(null, Id);

    return Page();
}

使用锚标记中的标记帮助程序访问它们可以正常工作:

<div class="col-md-4">
    <a asp-page="/DisTest" asp-page-handler="DisTest" asp-route-Id=@RandomNumber()> Click for Random Discussion Test by Id</a>
</div>
<div class="col-md-4">
    <a asp-page="/DisTest" asp-page-handler="DisTestThread" asp-route-Id="38796"> Click for Discussion Test by ThreadId, No replies</a>
</div>

这会产生类似......

的html
<a href="/DisTest/773?handler=DisTest"> Click for Random Discussion Test by Id</a>

尝试在表单中使用它时(这些都在razor页面之外的MVC视图页面上),如下所示:

<form asp-page="/DisTest" asp-page-handler="DisTestThread" method="get">
    <label>Enter thread Id</label>
    <input type="number" name="Id" />
    <button class="btn btn-default" type="submit">Show Discussion </button>
</form>

这就是它产生的结果:

<form method="get" action="/?page=%2FDisTest&amp;handler=DisTestThread">
    <label>Enter thread Id</label>
    <input type="number" name="Id">
    <button class="btn btn-default" type="submit">Show Discussion </button>
</form>

哪个不起作用。我使用标签助手在剃刀内找到了许多表格示例,但没有链接到剃刀页面。怎么样?

0 个答案:

没有答案