如何在ASP中向POST请求传递选择值,NET MVC

7xzttuei  于 2023-05-02  发布在  .NET
关注(0)|答案(1)|浏览(109)

有一个表单,在View中填写。ProductModel连接到视图。
所有字段均已成功填写。
问题是如何将动态添加的数据与它们沿着传递给select。它们有ValueName值。

[HttpPost]
public IActionResult New(
        ProductModel product,
        IFormFile upload,
        [Bind("Name")] CharacteristicParameters productCharacteristic
)
{
    // Here's how to work with the data 
}

public class CharacteristicParameters
{
    public IEnumerable<string> productCharacteristic { get; set; }
}

HTML代码如下:

<select 
        class="form-select" size="5" name="productCharacteristic"
        aria-label="..." id="productCharacteristicList">
    </select>

当然是在里面:

<form asp-action="New" enctype="multipart/form-data" method="post"> 
        ...
        <button type="submit" class="btn btn-primary">Post</button>
    </form>

一开始我尝试添加

public SelectList productCharacteristic { set; get; }

场到模型本身。不幸的是,此选项传递了空数据。
同时考虑使用

public IEnumerable<SelectListItem> productCharacteristic { set; get; }

List<string> productCharacteristic { set; get; }

没有一个产生了预期的结果。
经过长时间的分析和尝试其他尝试,我尝试使用创建另一个包含public IEnumerable<string> productCharacteristic { get; set; }的模型CharacteristicParameters productCharacteristic并使用Bind。
已经考虑过至少只提取字符串值。
不幸的是,对象null仍然返回到控制器。

ctehm74n

ctehm74n1#

示例形式:

<form method="post">
    <input asp-for="Name" type="text" placeholder="Name" />
    <select name="dynamicValues" multiple>
        <option value="test">Test</option>
        <option value="test 5">Test 1</option>
        <option value="test 7">Test 2</option>
    </select>
    <button type="submit">Post</button>
</form>

单击“提交”时
HTTP POST有效负载:

{
  name:'Okan',
  dynamicValues:test,
  dynamicValues:test 5
  
}

模型绑定应该在。网

public User { public string Name {get; set;}}

public UserPost(User user, List<string> dynamicValues)

如果希望在selectlist中访问名称,则访问值

var name = selectList.FirstOrDefault(x => x.Value == "test");

相关问题