Asp.net mvc action传递model参数的方法

在内部的一个mvc的项目中,视图中负责显示model数据,在视图中有一个button按钮,点击这个按钮调用controller中的方法,现在controller的方法中需要接收一个model中的数据作为参数,目前发现有2中办法:

方法1:将参数作为form表单参数参地,参数隐藏

视图:

    <div class="container">
        <form id="action1Form" action="/PublishToCenter/Upload" method="post">
            <div class="form-group">
                <label for="publishdes">版本发布说明:</label>              
                <textarea id="publishdes" name="publishdes" rows="4" cols="80" style="text-align:left;">
                    修复已知问题
                </textarea>
                <input type="hidden" name="dependProductId" value="@Model.DependVersionId"/>
            </div>
           
        </form>
        <div class="btn-group" style="margin-top:10px;" role="group" aria-label="Button group with different actions">
            <button type="submit" form="action1Form" class="btn btn-primary">仅上传文件但不发布</button>
        </div>
    </div>

controller:

[HttpPost]
public async Task<IActionResult> UploadAsync([FromForm]string publishdes, [FromForm] string dependProductId)
{
	//处理代码
    return RedirectToAction("IndexNew");         
}

方法2:直接讲参数作为query参数传递

视图:

    <div class="container">
        <form id="action1Form" action="/PublishToCenter/Upload?dependProductId=@Model.DependVersionId" method="post">
            <div class="form-group">
                <label for="publishdes">版本发布说明:</label>              
                <textarea id="publishdes" name="publishdes" rows="4" cols="80" style="text-align:left;">
                    修复已知问题
                </textarea>
            </div>
        </form>
        <div class="btn-group" style="margin-top:10px;" role="group" aria-label="Button group with different actions">
            <button type="submit" form="action1Form" class="btn btn-primary">仅上传文件但不发布</button>
        </div>
    </div>

controller:

[HttpPost]
public async Task<IActionResult> UploadAsync([FromForm]string publishdes, [FromQuery] string dependProductId)
{
	//处理代码
    return RedirectToAction("IndexNew");         
}

总结:

如果数据本身需要在form表单中显示,那么采用方法1;反之则采用方法2。

疑问

由于是一个初学者,现在遇到一个问题,这个参数现在在form表单外显示,如何不采用上面的2个方法也能够将参数传递进去呢 ?大家有好的方案,可以留言。

    <div class="row" style="background-color:burlywood">
        <div class="col-2">
            <span class="row-cols-2">依赖产品版本ID:</span>
            <span name="dependVersionId" class="row-cols-2">@Model.DependVersionId</span>
           </div>
        <div class="col-6">
            <span class="row-cols-2">依赖产品版本号:</span>
            <span class="row-cols-2">@Model.DependVersion</span>
        </div>
    </div>  

    <div class="container">
        <form id="action1Form" action="/PublishToCenter/Upload" method="post">
            <div class="form-group">
                <label for="publishdes">版本发布说明:</label>              
                <textarea id="publishdes" name="publishdes" rows="4" cols="80" style="text-align:left;">
                    修复已知问题
                </textarea>
            </div>
           
        </form>
        <div class="btn-group" style="margin-top:10px;" role="group" aria-label="Button group with different actions">
            <button type="submit" form="action1Form" class="btn btn-primary">仅上传文件但不发布</button>
        </div>
    </div>

如何能够直接获取dependVersionId这个span的值传递到upload方法中呢?

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值