C# C ASP.NET Web API以HTML格式创建枚举下拉列表
Grrr我对此有很多问题。希望有人能帮忙。在你回答之前,请记住我已经搜索过了,找到了很多关于这个的话题 目前,我正在尝试使用一个典型的POST请求来填充HTML表单。第一次这样做时,我通常是一个很好的程序员,但是ASP.NETWebAPI中的这个web服务东西正因为奇怪的特性而扼杀着我。“我的下拉列表”应包含以下枚举作为可选择的值:C# C ASP.NET Web API以HTML格式创建枚举下拉列表,c#,html,asp.net,rest,asp.net-mvc-4,C#,Html,Asp.net,Rest,Asp.net Mvc 4,Grrr我对此有很多问题。希望有人能帮忙。在你回答之前,请记住我已经搜索过了,找到了很多关于这个的话题 目前,我正在尝试使用一个典型的POST请求来填充HTML表单。第一次这样做时,我通常是一个很好的程序员,但是ASP.NETWebAPI中的这个web服务东西正因为奇怪的特性而扼杀着我。“我的下拉列表”应包含以下枚举作为可选择的值: public enum FuelTypes { Gasoline = 0, Diesel = 1 }; 是的,在控制器中调用视图时,我已确保传入模
public enum FuelTypes
{
Gasoline = 0,
Diesel = 1
};
是的,在控制器中调用视图时,我已确保传入模型实例
在调试模式下不断中断的行在HTML中,您可以看到,为了清晰起见,我在下面对其进行了注释:
@Html.DropDownListFor(model => model.FuelId, Model.FuelTypesList, "--Fuel Type--")
所以这次一定是出了什么问题。请看我下面分别用C和HTML编写的相关代码:
另外,任何其他的提示,以改善我已经有将是伟大的!我对这件事很陌生。但我需要能够得到这些下拉值来填充和显示。然后,我必须从HttpWrapper对象中创建相关对象,该对象包含所有正在发布的数据
提前谢谢
我的模型:
我的控制器:
包含HTML/JavaScript的我的视图:
我相信你已经找到了解决问题的办法 否则,这是一个有效的解决方案
Html.DropDownListFor(o => o.EnumProperty, Enum.GetValues(typeof(enumtype)).Cast<enumtype>().Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() }))
在这里找到的我相信你已经找到了解决问题的办法 否则,这是一个有效的解决方案
Html.DropDownListFor(o => o.EnumProperty, Enum.GetValues(typeof(enumtype)).Cast<enumtype>().Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() }))
在这里找到它您能详细解释一下吗,我检查了您的代码。最初没有呈现任何内容,我删除了[HttpPost]属性,然后表单呈现。您好,我在Visual Studio 2015中运行所有内容时遇到以下异常:System.NullReferenceException未由用户代码HResult=-2147467261 Message=对象引用未设置为对象的实例处理。Source=App\u Web\u bkzznufe StackTrace:at ASP.\u Page\u Views\u Home\u Index\u cshtml.Execute in c:\users\brad\documents\visualstudio 2015\Projects\autosout24\AutoWebService\Views\Home\Index.cshtml:33行您可以共享代码解决方案吗?当然可以。我怎样才能发送给你呢?通过在这里张贴代码文件,你能更详细地解释一下吗?我检查了你的代码。最初没有呈现任何内容,我删除了[HttpPost]属性,然后表单呈现。您好,我在Visual Studio 2015中运行所有内容时遇到以下异常:System.NullReferenceException未由用户代码HResult=-2147467261 Message=对象引用未设置为对象的实例处理。Source=App\u Web\u bkzznufe StackTrace:at ASP.\u Page\u Views\u Home\u Index\u cshtml.Execute in c:\users\brad\documents\visualstudio 2015\Projects\autosout24\AutoWebService\Views\Home\Index.cshtml:33行您可以共享代码解决方案吗?当然可以。如何发送给您?通过在此处张贴代码文件
<div id="body">
<ul id="caradvertisements"></ul>
</div>
<form id="saveCarAdvertisementForm" method="POST">
<h3>Create A New Car Advertisement</h3>
<p>
<label for="New">New or Used:</label>
<div align="left">
<select name="mydropdown">
<option value="New">New</option>
<option value="Used">Used</option>
</select>
</div>
</p>
<p>
<label for="Id">Car Id:</label>
<input type="text" name="Id" />
</p>
<p>
<label for="Title">Car Title:</label>
<input type="text" name="Title" />
</p>
<p>
@model AutoWebService.Models.FuelModel
@{
ViewBag.Title = "Index";
}
@Html.LabelFor(model => model.FuelId)
@Html.DropDownListFor(model => model.FuelId, Model.FuelTypesList)
@Html.DropDownListFor(model => model.FuelId, Model.FuelTypesList, "--Fuel Type--")
<div align="left">
<label for="Fuel">Car Fuel Type:</label>
<select name="mydropdown">
<option value="Gasoline">Gasoline</option>
<option value="Diesel">Diesel</option>
</select>
</div>
</p>
<p>
<label for="Price">Car Price:</label>
<input type="text" name="Price" />
</p>
<input type="button" id="saveCarAdvertisement" value="Save" />
</form>
@section scripts{
<script type="text/javascript">
$(function()
{
$.getJSON('/api/caradvertisement', function(caradvertisementsJsonPayload)
{
$(caradvertisementsJsonPayload).each(function (i, item)
{
$('#caradvertisements').append('<li>' + item.Name + '</li>');
});
});
});
$('#saveCarAdvertisement').click(function ()
{
$.post("api/caradvertisement",
$("#saveCarAdvertisementForm").serialize(),
function (value)
{
$('#caradvertisements').append('<li>' + value.Name + '</li>');
},
"json"
);
});
</script>
}
Html.DropDownListFor(o => o.EnumProperty, Enum.GetValues(typeof(enumtype)).Cast<enumtype>().Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString() }))