javascript - 没有 JS/JQuery 的 ASP.NET

标签 javascript c# jquery asp.net-mvc

好吧,我对 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/

相关文章:

c# - default(T) 返回 null 其中 T 继承自 DataContext

c# - 不可变值类型

Javascript 在文本中查找单词并动态改变颜色

javascript - jQuery 根据高度拆分内容

javascript - JQuery attr 选择器到字符串,存储为变量,然后传递到另一个 JQuery 选择器

javascript - 正则表达式匹配不在数组中的逗号(用方括号括起来)

javascript - JS formatnumber/addcommas 不工作

javascript - 根据年份范围过滤对象

c# - 使用 SQL、Lambda 或 LINQ 对数据进行分组

javascript - 使用 jquery 函数添加/删除类