Asp.net mvc 使用HttpGet和HttpPost的mvc4方法
我使用的是带有剃刀视图的Asp.net mvc 使用HttpGet和HttpPost的mvc4方法,asp.net-mvc,Asp.net Mvc,我使用的是带有剃刀视图的mvc4。该视图有两个下拉列表和一个Submit按钮 <form id="mutualTradeFormId" method="get" action="@Url.Action("Index")"> <div class="col-sm-2"> <select id="FundFamilyId" name="FundFamily" class="FundFamilyClass"> @f
mvc4
。该视图有两个下拉列表和一个Submit
按钮
<form id="mutualTradeFormId" method="get" action="@Url.Action("Index")">
<div class="col-sm-2">
<select id="FundFamilyId" name="FundFamily" class="FundFamilyClass">
@foreach (var item in Model.MutualFundFamilies)
{
<option value="@item.Value">@item.Text </option>
}
</select>
</div>
<select id="FundId" name="Fund" class="FundClass">
@foreach (var item in Model.mutualFunds)
{
<option value="@item.Value">@item.Text</option>
}
</select>
<div class="col-sm-2">
<input type="button" id="btnPreview" value="Preview Order" />
</div>
</form>
控制器
public ActionResult Index( string FundFamily = "")
{
if (FundFamily.Length > 0)
{
_vmfund.lstMutualFunds = DalOrders.GetFundsByFamilyId(FundFamily);
}
....
return View(_vmfund);
}
表单标签有一个method=“get”
,以允许填充第二个DropdownList
。对于按钮点击,我想做一个Post,我不知道如何构造控制器,以便对DDL填充执行HttpGet
,对于按钮点击,只需在
标记中使用method=“get”
,在ajax调用中使用键入:“get”,
为什么不在呈现页面之前填充下拉列表并向下传递?我同意JPG的观点,您通常希望在视图模型中预加载该数据,然后将其传递给视图,我还强烈建议您访问MVC站点,学习如何使用HtmlHelper
方法创建视图的基础知识(您当前的实现意味着没有双向模型绑定,没有客户端验证,没有编辑现有数据的能力)。要正确实现级联下拉列表,请参阅)感谢您的建议。需要说明的是,有两个下拉列表,id=“FundFamilyId”和id=“FundId,在页面加载中,控制器会预先填充FundFamilyId,但是当选择第一个项目中的项目时,会填充第二个。解决方案是调用WEB API来检索第二个DDL的数据,这样我就不必回发到服务器。表单需要方法=发布按钮点击事件只需在
标记中使用method=“get”
,在ajax调用中,使用键入:'get',
为什么不在呈现页面之前填充下拉列表并向下传递?我同意JPG的观点,您通常希望在视图模型中预加载该数据,然后将其传递给视图,我还强烈建议您访问MVC站点,学习如何使用HtmlHelper
方法创建视图的基础知识(您当前的实现意味着没有双向模型绑定,没有客户端验证,没有编辑现有数据的能力)。要正确实现级联下拉列表,请参阅)感谢您的建议。需要说明的是,有两个下拉列表,id=“FundFamilyId”和id=“FundId,在页面加载中,控制器会预先填充FundFamilyId,但是当选择第一个项目中的项目时,会填充第二个。解决方案是调用WEB API来检索第二个DDL的数据,这样我就不必回发到服务器。表单需要方法=按钮单击事件的Post
public ActionResult Index( string FundFamily = "")
{
if (FundFamily.Length > 0)
{
_vmfund.lstMutualFunds = DalOrders.GetFundsByFamilyId(FundFamily);
}
....
return View(_vmfund);
}