这可以使用jQuery来完成。 我的做法就是这样。假设你有一个看起来是这样一种形式:
<form method="post" action="#">
<select id="myList" name="myList">
<option value="1">Value 1</option>
<option value="2">Value 2</option>
</select>
<input type="text" id="newValue" name="newValue" />
<a href="#" id="btn">add new value</a>
<input type="submit" value="Submit">
</form>
哪里myList中是要添加一个新值,并刷新下拉列表中,NEWVALUE是文本字段,以接受新的值被添加到下拉( myList)并且带有id btn的链接是添加按钮。您可以添加一个jQuery会是这个样子:
<script type="text/javascript">
$(document).ready(function() {
$("#btn").click(function (event) {
event.preventDefault();
$.post("/home/addvalue", { value: $("#newValue").val() }, function (result) {
if (result != null) {
$("#myList").append("<option value='" + result.id + "' selected='selected'>" + result.text + "</option>");
}
});
});
});
</script>
我是什么当您单击从文本框中的链接(BTN)我收集值(和只是值)上,并做到POST (表单提交)到服务器。 我猜你希望服务器给出某种答案,包括新插入的值的ID。 如果服务器发回一个新的ID,我再追加新的结果列表(并将其设置为选择一个)
在服务器端,你的代码可能是这个样子
[HttpPost]
public JsonResult AddValue(FormCollection collection)
{
//do database inser for the new value and get the id
var response = new Dictionary<string, object>();
response.Add("id", 3);//3 here represents that last id
response.Add("text", collection["value"]); //the value you sent for the new option
return Json(response);
}
您会收到POST(编辑)数据并保存到数据库。一旦保存了值,并且将新的ID保存到字典中,然后您将序列化并返回为上述JavaScript的json。 这会更新你的表单,所以当你实际点击提交myList值时将会是新的值。 希望这可以帮助(如果是,请接受答案)
如果我让你正确我想你只需要将新位置的数据从局部视图移动到下拉列表中,方法是使用javascript帮助添加一个新选项你这样做给我的一些代码更清楚 – Marwan
你可能想添加ASP.NET标签到你的问题。 –
在ajax调用的成功函数,我认为你必须添加新的位置与JavaScript的下拉列表,像amesh在那里做了数据,你应该从ajax调用返回我想你需要返回的位置名称设置到文本属性和位置的ID设置为新的选项的值属性:)说,如果你需要更多的细节只是说吧:) – Marwan