Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从ASP.NET Core 3.1 MVC中的选定下拉列表中获取输入文本_C#_Asp.net Mvc_Asp.net Core_Razor_Dropdown - Fatal编程技术网

C# 如何从ASP.NET Core 3.1 MVC中的选定下拉列表中获取输入文本

C# 如何从ASP.NET Core 3.1 MVC中的选定下拉列表中获取输入文本,c#,asp.net-mvc,asp.net-core,razor,dropdown,C#,Asp.net Mvc,Asp.net Core,Razor,Dropdown,我正在使用ASP.NET Core 3.1 MVC创建带有表单的页面。下拉列表中填充了数据库中的数据。在我的控制器中,我想从下拉列表中捕获所选项目的文本。现在,我能够捕获与所选项目关联的ID 我的模型: public int ID { get; set; } public string bookName { get; set; } public string Author { get; set; } 我的cshtml: <form method="post" asp-

我正在使用ASP.NET Core 3.1 MVC创建带有表单的页面。下拉列表中填充了数据库中的数据。在我的控制器中,我想从下拉列表中捕获所选项目的文本。现在,我能够捕获与所选项目关联的ID

我的模型:

public int ID { get; set; }
public string bookName { get; set; }
public string Author { get; set; }
我的cshtml:

<form method="post" asp-controller="Index" asp-action="Index" role="post">
    <div class="form-group">
        <label asp-for="bookName"></label>
        <select name="bookName" asp-items="@(new SelectList(ViewBag.message, "ID", "bookName"))"></select>
    </div>
</form>

我的控制器:

        public void PopulateBooks()
        {
            List<bookModel> bookName = new List<bookModel>();
            bookName = (from a in _context.bookModel select a).ToList();
            bookName.Insert(0, new bookModel { ID = 0, bookName = "" });
            ViewBag.message = bookName;
        }

[HttpPost]
public async Task<IActionResult> Index([FromForm] bookModel model)
{
  string bookName = HttpContext.Request.Form["bookName"];
}
public void PopulateBooks()
{
List bookName=新列表();
bookName=(从_context.bookModel中选择a).ToList();
bookName.Insert(0,新bookModel{ID=0,bookName=”“});
ViewBag.message=书名;
}
[HttpPost]
公共异步任务索引([FromForm]bookModel)
{
字符串bookName=HttpContext.Request.Form[“bookName”];
}

我的字符串变量“bookName”返回所选书籍的ID,但我需要所选书籍的名称。谢谢

这不是Asp.NETMVC或Razor特有的,但它是用于将表单数据发布到服务器端应用程序的一般浏览器端设计实践<代码>元素中的
元素将
值作为属性,并将内部文本作为其显示文本

<select name="mySelect">
  <option value="1">bookname 1</option>
  <option value="2">bookname 2</option>
  <option value="3">bookname 3</option>
</select>


这将产生:

<select name="bookName">
  <option value="bookname 1">bookname 1</option>
  <option value="bookname 2">bookname 2</option>
  <option value="bookname 3">bookname 3</option>
</select>

书名1
书名2
书名3
[HttpPost]
public async Task<IActionResult> Index([FromForm] bookModel model)
{
  int bookID = model.ID;
  model.bookName = (from a in _context.bookModel where a.ID == bookID select a.bookName).FirstOrDefault()
  // do whatever you want to do with book name using model.bookName now...
}
<select name="bookName" asp-items="@(new SelectList(ViewBag.message, "bookName", "bookName"))"></select>
<select name="bookName">
  <option value="bookname 1">bookname 1</option>
  <option value="bookname 2">bookname 2</option>
  <option value="bookname 3">bookname 3</option>
</select>