首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.net Core2如何向post请求添加额外数据?

ASP.net Core2如何向post请求添加额外数据?
EN

Stack Overflow用户
提问于 2018-01-26 13:14:22
回答 2查看 933关注 0票数 1

我正在尝试在我的表单中发送一些额外的数据,并在控制器端读取它。

我的表单是一个用Html.BeginForm创建的基本表单,其中有两个与模型中的列相对应的Html.Textboxes。到目前为止,传递给控制器的模型具有正确的信息,但我不确定如何发送不在模型上的信息,以及如何在控制器上提取这些信息。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-01-26 17:39:10

下面是一个示例,展示了如何从表单传递额外数据并在控制器中使用它:

你的控制器将接受你的模型+额外的数据。如果您有多个参数,可以将它们添加到方法签名中。

代码语言:javascript
运行
复制
    [HttpPost]
    public IActionResult MyMethod(MyData myData, string extra)
    {
    }

在表单中,您可以使用asp-route-*属性传递额外的数据:

代码语言:javascript
运行
复制
@model MyData

<form asp-action="MyMethod" asp-controller="Home" asp-route-extra="myExtraData">
    <input asp-for="Name"/>
    <input asp-for="Age" />
    <input type="submit" value="submit"/>
</form>

您的模型类将如下所示:

代码语言:javascript
运行
复制
public class MyData
{
    public string Name { get; set; }
    public int Age { get; set; }
}
票数 1
EN

Stack Overflow用户

发布于 2018-01-26 17:18:18

您可以将任何输入数据作为表单输入发布。我使用了隐藏输入。

模型

代码语言:javascript
运行
复制
public class MyModel {
    public string Name { get; set; }
}

视图

代码语言:javascript
运行
复制
@using (Html.BeginForm("MyModelPost", "Home", FormMethod.Post))
{
    @Html.ValidationSummary(true)
    <fieldset>
        model field : @Html.TextBoxFor(model => model.Name) <br />
        custom field(can be any input) : <input type="hidden" name="extraParam" value="extra value" >
    </fieldset>
    <input type="submit" value="submit">
}

控制器

代码语言:javascript
运行
复制
    [HttpPost]
    public IActionResult MyModelPost(MyModel model,string extraParam){
        Debug.WriteLine($"model param {model.Name}");
        Debug.WriteLine($"extra param {extraParam}");
        return View();
        //out put:
        // model param adsfs
        // extra param extra value

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48456123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档