仅使用输入按钮将参数传递给 ASP.NET Core 中的 Action 的 Post 表单

我正在做我的论文工作,我正在制作一个简单的浏览器游戏,到目前为止我有一个带有 3 个按钮的表单,我想用不同的参数调用相同的操作,这就是我到目前为止所想到的:


@using (Html.BeginForm("Gather", "Character", FormMethod.Post, new { @class = "btn-group-vertical mr-2", @role = "group", }))

{

    <h3>Woods:</h3>

    <input type="submit" class="btn btn-secondary" value="Woods of Deloria (90%)" />

    @Html.Hidden("area", "woods")

    @Html.Hidden("type", "deloria")


    <input type="submit" class="btn btn-secondary" value="Woods of Forgotten souls (50%)" />

    @Html.Hidden("area", "woods")

    @Html.Hidden("type", "forgotten souls")


    <input type="submit" class="btn btn-secondary" value="Shadowforest (10%)" />

    @Html.Hidden("area", "woods")

    @Html.Hidden("type", "shadowforest")

}

我的问题是如何使不同的按钮传递不同的类型,所有按钮必须采用相同的形式,否则会破坏我的CSS。我使用的是隐藏,因为我不希望用户能够编辑作为参数传递的值,也不希望将值传递到 URL 上。


编辑:我意识到 @Html.Hidden 不会将其隐藏在 html 中,如果我想将参数从按钮传递给用户无法编辑的操作,我的方法是什么?


编辑2:好吧,我取得了一些进展,将形式更改为


<form method="post" class="btn-group-vertical mr-2" role="group">

    <h3>Woods:</h3>

    <input type="submit" class="btn btn-secondary" name="deloria" value="Woods of Deloria (90%)" />


    <input type="submit" class="btn btn-secondary" name="forgotten souls" value="Woods of Forgotten souls (50%)" />


    <input type="submit" class="btn btn-secondary" name="shadowforest" value="Shadowforest (10%)" />

</form>

我的后期操作如下所示:


[HttpPost]

    public IActionResult Gather(int id)

    {

        var taskName = "";


        if (Request.Form.ContainsKey("deloria"))

        {

            taskName = "deloria";

        }

        else if (Request.Form.ContainsKey("forgotten souls"))

        {

            taskName = "forgotten souls";

        }

        else if (Request.Form.ContainsKey("shadowforest"))

        {

            taskName = "shadowforestD";

        }


        if (string.IsNullOrEmpty(taskName))

        {

            return Json("uh oh");

        }

        else

        {

            return Json(taskName);

        }

    }

}

我知道这很混乱,但我会找到一种方法让它变得更紧凑。


慕少森
浏览 109回答 0
0回答

哔哔one

我会看一下这里列出的各种选项:http://www.binaryintellect.net/articles/c69d78a3-21d7-416b-9d10-6b812a862778.aspx如果您使用的是 Razor Pages,而不是传统的 MVC,您应该看看处理程序方法:https://www.learnrazorpages.com/razor-pages/handler-methods
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5