Asp.net mvc 对控制器的Ajax调用
我正在使用HttpPost将一些数据(复选框、字符串)从视图传递到控制器。 除了这些数据,我还需要传递用户选择的2个下拉列表的值,这2个列表不与模型绑定,它们只是在视图中。如何操作 在视图中-> 装货月份: 简 二月 破坏 四月 也许 六月 七月 八月 九月 十月 十一月 12月Asp.net mvc 对控制器的Ajax调用,asp.net-mvc,Asp.net Mvc,我正在使用HttpPost将一些数据(复选框、字符串)从视图传递到控制器。 除了这些数据,我还需要传递用户选择的2个下拉列表的值,这2个列表不与模型绑定,它们只是在视图中。如何操作 在视图中-> 装货月份: 简 二月 破坏 四月 也许 六月 七月 八月 九月 十月 十一月 12月 装载年份: 2012 2013 2014 我有这个和其他绑定到模型的项目。当我使用form begin和HttpPost方法时,我可以从控制器中检索它们,但是如何传递loadmonth和loadyear下拉列表,以
装载年份:
2012
2013
2014
我有这个和其他绑定到模型的项目。当我使用form begin和HttpPost方法时,我可以从控制器中检索它们,但是如何传递loadmonth和loadyear下拉列表,以便我可以在控制器中看到它们的值?例如,请尝试此更改。我相信它会奏效 您可以为下拉列表设置强类型隐藏字段。在下拉列表中,更改事件将其值放入隐藏字段。其余部分由模型和控制器处理。您需要一点javascript/jQuery。我总是喜欢 注意:隐藏字段必须与视图中使用的模型中的属性进行强绑定 模型 看法 控制器 当此视图的
HttpPost
操作点击时,实际上可以在调试器中看到属性的值
这也可以通过ajax实现,但这将节省对代码的额外调用,并为相同的代码编写一些代码。如果你真的想用ajax做这件事,请发表评论。
希望有帮助:)只要字段的格式符合您可以使用请求访问它们的格式。它们不会通过MVC绑定到任何模型,但会显示值以供获取。使用
控制器。请求属性来访问它们。请提供一些您迄今为止尝试过的代码片段。我认为这将通过AJAX调用来完成,但我不知道如何通过AJAX调用将其传递给控制器我已经在使用HttpPost进行一些其他操作,我可以将它们添加到此HttpPost?那么,例如,如果年份是2012年,我想发表一些评论。如何从控制器访问该下拉列表?当下拉列表的更改事件触发(通过jquery)时,您选择的任何值都将更新隐藏字段,并且您的模型将具有每个属性的值(如果它们存在于视图中)。就这么简单。那么问题是什么呢?我也不能使用@model,因为我正在将一组模型传递给我的视图,所以我想我必须使用ajax,我不想将这个下拉框绑定到模型。
<div id="loadyear">
Load Year :
<select name="years" class="YearDropDown">
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
</select>
</div>
public class MyModel
{
// your other stuff
public string DropDownValue { get; set; }
}
<div id="loadyear">
Load Year :
<select name="years" class="YearDropDown">
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
</select>
@Html.HiddenFor(x => x.DropDownValue)
</div>
$(function(){
$('#loadyear select').change(function(){
$('#DropDownValue').val($(this).val());
});
});
[HttpPost]
public ActionResult ViewName(MyModel model)
{
return View(model);
}