【问题标题】:How to change " asp-action=" with your selected Viewbag .Net Core 2.0如何使用您选择的 Viewbag .Net Core 2.0 更改“asp-action=”
【发布时间】:2018-05-24 02:37:48
【问题描述】:

我正在尝试更改“asp-action=”,不幸的是我在互联网上找不到任何东西...

目前我正在使用 ViewBag,我可以从该列表中选择一个值。

我想要的是:我想将 ViewBag 中的选定值放在“asp-action= ( here )”中

Image of my index
Image of my Post method


<form method="post" enctype="multipart/form-data" asp-controller="Parser" asp-action= "PostDrone">
    <div class="col-md-10">
        <p>Upload one or more files using this form:</p> 
        <select  asp-items="@(new SelectList(@ViewBag.listofitems ))"></select> 
        <input type="file" name="files" multiple />
    </div>
</div>
<div class="form-group">
    <div class="col-md-10">
        <input type="submit" value="Upload" />
    </div>
</div>

例如:

如果我从 viewbag 选择列表中选择 PostSchoen,我希望“asp-action=”具有字符串值“PostSchoen”

希望我说的可以理解

【问题讨论】:

  • 此外,您的 SELECT 元素选择也将提交给服务器。使用 asp-for 以便它为您的视图模型属性生成名称,您可以在服务器端使用它来做不同的事情.

标签: asp.net-mvc razor asp.net-core .net-core asp.net-core-2.0


【解决方案1】:

你想做的事情应该通过 JS 客户端开发来做

但你有三种方式:

1) 可以通过JS来修改

这里是一个 Jquery 的例子

需要将其添加到 onReady 函数中,这会将操作更改为选项 val

<script>
$(function() {
   $("select").change(function (){
          //set form action to option val or get to whatever you need
          $(this).closest("form").attr("action",$(this).val());
    });
});
</script>

2) 将数据发送到一种控制器方法,然后通过您的选择或其他选项进行切换

改变看法

  <select name="typeOfUploading" asp-items="@(new
 SelectList(@ViewBag.listofitems ))"></select> 

控制器的变化

     PostDrone(List<IFromFile> files, string typeOfUploading) 
{ 
//and use typeOfUploading this will be selected value from your select list 
}

3) 首先为用户提供此数据发送选择,以便为他生成正确的视图和所需的操作

【讨论】:

  • 我没有使用 Jquery 的经验,有没有其他选择可以使这项工作? :(
  • 谢谢,但我不知道如何实现第二个或第三个选项。 :s 非常感谢您花时间帮助我。
  • @Ogieeeeee,只需将我的脚本从第一种方式添加到您的视图并检查它
  • 使用change 事件。还有closest('form') 比parent。
  • 我应该把它放在视图中的什么位置?
猜你喜欢
  • 2018-02-13
  • 1970-01-01
  • 1970-01-01
  • 2022-12-04
  • 2021-06-14
  • 2021-05-25
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多