微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Razor Pages Core - 更新模型或将附加数据传回 Post 方法

如何解决Razor Pages Core - 更新模型或将附加数据传回 Post 方法

我希望我能简洁地问这个问题...

对使用 .Net Core 的 Razor Pages 非常陌生,但开始了一个项目,希望我能找到有关当前问题的帮助。我确信可能有几种方法可以解决这个问题,因此最好将我希望实现的目标与我目前所知道的相比。

为了提供更多细节,我有一个名为 Entry 的模型。每个Entry 可以有多个EntryImages。因此,在我的 Razor Pages 项目中,在条目的编辑屏幕上,我希望能够添加新的条目图像(一次一个)。

因此,在 Entry 编辑页面上,我有一个包含文件选择器的模式弹出窗口,它允许我使用 IFormFile在提交时将图像文件传递回 Post 方法>:

enter image description here

在后面的代码中,我将这个文件放入一个 EntryImage 中,该图像信息进入 Entry,然后传递到数据库

enter image description here

但是,我还希望能够针对我刚刚传递给数据库的图像添加注释。这是我的理解不足的地方。我希望我可以像这样更新页面中的模型(这是一个测试示例):

enter image description here

在我尝试向模型 Entry 添加新的 EntryImage 的地方 - 但回到后面代码的 post 方法中,模型不包含新的 添加了 EntryImage

我知道我的尝试很混乱,但希望它能很好地说明我想要实现的目标。我觉得有一种非常简单的方法可以做我需要做的事情,但为了尝试,我似乎还找不到正确的答案。

解决方法

您可以在文件选择器后面添加另一个输入文本:

<div class="form-row">
    <div class="form-group">
        <input name="files" type="file" />
    </div>
</div>
<div class="form-row">
    <div class="form-group">
        <input name="comment" type="text"  />
    </div>
</div>

然后在post方法中,多了一个参数来接受评论值:

public async Task<IActionResult> OnPostAsync(IFormFile files,string comment)
{
  //...
}
,

标记的答案感觉是正确的和最佳实践。但是,我还发现您可以使用以下代码在代码隐藏中通过控件名称从控件中获取值:

string comment = (string)Request.Form["txtComment"];

其中 txtComment 是文本输入控件的名称。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。