如何使用asp-route属性从输入发送数据?

时间:2019-06-02 16:23:55

标签: forms asp.net-core

我正在使用此代码通过动作调用控制器。 我想从asp-route-data中的输入标签发送数据。

<customErrors mode="Off" defaultRedirect="/Error/Default">
  <error statusCode="404" redirect="/Error/E404" />
  <error statusCode="500" redirect="/Error/E500" />
  <error statusCode="403" redirect="/Error/E403" />
</customErrors>

因此,asp-route-username应该是输入korisnik中的值。 有可能吗?

3 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题(不确定(我不确定)),那么您认为问题的答案是使用<form>标签。然后,不要在asp-route标签上应用<button>属性,而在<form>标签上应用它们:

<form asp-controller="Members" asp-action="LoginUser" asp-route-username="a" asp-route-password="">
    <span><label><b>Korisnik :</b></label></span>
    <br />
    <input type="text" name="korisnik" id="korisnik" size="40" height="25" />
    <br />
    <br />
    <span><label><b>Lozinka :</b></label></span>
    <br />
    <input type="password" name="lozinka" id="lozinka" size="40" height="25" />
    <br />
    <br />
    <button type="submit" title="Login" class="btnLogin"></button>
</form>

请务必查看how to work with forms上的官方ASP.NET Core文档。

答案 1 :(得分:0)

如果您使用username传递passwordasp-route-{value},则会在不建议的网址中显示这些信息。

如果仅要将两个输入值从视图传递到控制器,则需要修改input的name属性以匹配操作参数。例如:

查看:

<form method="post" asp-controller="Members" asp-action="LoginUser">
    <span><label><b>Korisnik :</b></label></span>
    <br />
    <input type="text" name="username" id="korisnik" size="40" height="25" />
    <br />
    <br />
    <span><label><b>Lozinka :</b></label></span>
    <br />
    <input type="password" name="password" id="lozinka" size="40" height="25" />
    <br />
    <br />
    <button type="submit" title="Login" class="btnLogin"></button>
</form>

操作:

[HttpPost]
public async Task<IActionResult> LoginUser(string username,string password)

答案 2 :(得分:0)

我有答案。 最后,我使用了IFormCollection,然后从中获取价值。

[HttpPost]
[Route("LoginUser")]
public ActionResult LoginUser(IFormCollection collection)
{

    string user = collection["korisnik"];
}