好吧,我对 C# 比 Javascript 更满意,而且我很高兴我可以在 Controller 中处理下拉列表更改。这是省份下拉列表:
@Html.DropDownList( "Province", null, htmlAttributes: new { @class = "form-control", @onchange = "document.location.href = '/Employees/FillDDLWithTowns?id=' +ID.value + '&provinceName=' + Province.value;" } )
在我的 Controller 中,我想填充所选省份的城镇,一切正常,但为什么必须刷新页面?无论如何,是否可以只填充 DDL,而不需要保存记录并重新显示页面?
public ActionResult FillDDLWithTowns( int? id, string provinceName )
{
if ( id == null )
{
return new HttpStatusCodeResult( HttpStatusCode.BadRequest );
}
tblEmployee tblASEmployee = db.tblEmployees.Find( id );
if ( tblEmployee == null )
{
return HttpNotFound();
}
if ( provinceName.Equals( "" ) == false )
{
tblEmployee.Province = provinceName;
db.Entry( tblEmployee ).State = EntityState.Modified;
db.SaveChanges();
var postCode = Provinces.NamesAndPlaces.Instance.getPostCode( provinceName );
if ( postCode != 0 )
{
SelectList municips = new SelectList( Provinces.NamesAndPlaces.Instance.getMunicipalities( postCode ) );
ViewBag.Town = municips;
}
}
return Redirect( Request.UrlReferrer.AbsoluteUri.ToString() );
}
我真的必须恢复到 JQuery 和 JSON 吗?
最佳答案
ASP.NET MVC 是一种服务器端技术。要填充下拉列表而不刷新/重新请求您的页面,您需要一个客户端脚本 - 即 Javascript。
实际上并不需要 jQuery 或 JSON,您可以使用普通的 JavaScript 来完成此操作,并且可以使用另一种方法来格式化数据,但最方便的方法是使用 jQuery 执行 AJAX 调用并使用 JSON 来执行 AJAX 调用。格式化数据。
关于javascript - 没有 JS/JQuery 的 ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33232005/