C# 如何从razorview的下拉列表中捕获所选元素并使用POST发送?

C# 如何从razorview的下拉列表中捕获所选元素并使用POST发送?,c#,javascript,asp.net-mvc,razor,C#,Javascript,Asp.net Mvc,Razor,下面是我的观点。我正在填充控制器已通过列表中的下拉列表。 我需要发送从下拉列表中选择的项目以将其发送到我的api <div id="body"> @model List<Data> <select> @foreach(var item in Model) { <option value="@it

下面是我的观点。我正在填充控制器已通过列表中的下拉列表。 我需要发送从下拉列表中选择的项目以将其发送到我的api

 <div id="body">  

            @model List<Data>

            <select>
                @foreach(var item in Model)
                {
                    <option value="@item.value" >@item.value</option>
                }
            </select>


            <form id="sendstuff">

               @*TODO need to send what was selected in the dropdown here*@

                <input class="btn" type="submit" id="createAccount" value="Send Stuff" />

                <br/>

                <div id="apiresponse"></div>
            </form>
        </section>
    </div>

<script src="/Scripts/jquery-1.9.0.js"></script>
<script type="text/javascript">
    $(function () {
        $("#sendstuff").submit(function (event) {
            event.preventDefault();
            var options = {
                url: "api/CreateSomeAccount",
                type: "POST",
                data: $('#sendstuff').serialize()
            };

            $.ajax(options).done(function (data) {
                $("#apiresponse").html(data);
            });

            return false;
        });
    });
</script>
Jscript在这里向web api发送json post请求,并从api获取apiresponse并替换视图的apiresponse。我想做的是 发送下拉列表中选择的选项,并将该选项发送到此json ajax post请求

这是控制器代码。它是一个json文件,将数据列表从文件传递到视图

namespace Something.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            using (StreamReader r = new StreamReader(System.IO.File.OpenRead(WebConfigurationManager.AppSettings["JsonFileLocation"])))
            {
                string jsonData = r.ReadToEnd();
                List<Data> testsNamesList = JsonConvert.DeserializeObject<List<Data>>(jsonData);
                return View(Data);
            }
        }
    }
}
试试这个

@using (Html.BeginForm()) 
{
    <select name="dropdownValue">
    @foreach (var item in Model)
    {
        <option value="@item.value">@item.value</option>
    }
    </select>
   <input type="submit" value="submit" />
}

并通过将名为dropdownValue的字符串参数添加到操作方法中来获取值

我已经提出了一个使用javascript的解决方案。基本上,当选择下拉列表时,它会用下拉列表选择填充文本框,当我提交时,文本框中填充的字段将被发送到api

$('#dropdown').change(function () {
    $('#textbox').val($(this).find(":selected").text());
});

这不是理想的解决方案,但如果其他人有更好的解决方案,请随时回答。

您想什么时候发送?怎么做?你的表格里没有。。。你有这个按钮吗?我已经更新了这个问题。希望这能把事情弄清楚。我确实想在表单中包含我的选项。见我上面更新的问题。这可能会帮助你更好地回答我的问题。