我有一个有两个列表框的应用程序:
@using (Html.BeginForm())
{
@Html.ListBoxFor(m => m.SelectedAttributes, Model.Attributes, new {id="listBoxAvail", SIZE = 5} )
<button type="button" id="add">MoveRight</button>
<button type="button" id="remove">"MoveLeft"></button>
<button type="button" id="remove-all">RemAll</button>
<button type="button" id="select-all">SelAll</button>
<button type="button" id="up" onclick="MoveUp()">Up</button>
<button type="button" id="down" onclick="MoveDown()">Down</button>
@Html.ListBoxFor(m => m.SelectedAttributes2, Model.SelectedItems, new { id = "listBoxSel", SIZE = 5})
<br />
<p>Item Caption Text (140 Characters. HTML not allowed.)</p>
@Html.TextAreaFor(m => m.ItemCaptionText)
<input type="submit" id="submit" value="Save"/>
}
我使用jQuery将选定的值从一个列表框传输到另一个列表框但是我追加了一个&#34; L&#34;为了以后的使用价值:
$("#add").click(function () {
$("#listBoxAvail > option:selected").each(function () {
$(this).remove();
val = $(this).val();
temp = $(this);
temp.val('L' + val)
$(temp).appendTo("#listBoxSel");
});
});
在使用F12开发人员工具转移到右侧列表框后,我看到了文本和值。我要知道的是如何从Controller中的C#代码获得该值?
[HttpPost]
public ActionResult Index(OptInViewModel viewModel)
{
AttributeEntities db = new AttributeEntities();
IEnumerable<string> items = viewModel.SelectedAttributes2;
foreach (var item in items)
{
var temp = item;
// Save it
SelectedHarmonyAttribute attribute = new SelectedHarmonyAttribute();
attribute.CustomLabel = viewModel.ItemCaptionText;
//attribute.IsVisible = ?
//attribute.OrderNumber = ?
//attribute.HarmonyAttribute_ID
}
return View("Index");
}
ViewModel是:
public class OptInViewModel
{
public IEnumerable<string> SelectedAttributes { get; set; }
public IEnumerable<string> SelectedAttributes2 { get; set; }
public IEnumerable<SelectListItem> Attributes { get; set; }
public IEnumerable<SelectListItem> SelectedItems { get; set; }
public string ItemCaptionText { get; set; }
}
答案 0 :(得分:1)
我不完全理解你的问题,但是从我收集的内容中你试图将参数传递给MVC中的函数调用。可以像在PHP中一样将参数添加到URL。
例如,函数可以定义为
void Function (string value);
并且调用它的URL将是
~/Controller/Function?value=HelloWorld
您还可以设置路由。有关详细信息,请参阅StackOverflow上的此答案:
ASP.NET MVC - passing parameters to the controller
编辑:我看到你正在尝试使用表单提交
确保正确格式化视图,不要忘记:
@model Path.To.Model
和控制器信息:
using (@Html.BeginForm("myMethod", "Controller", FormMethod.Post))