protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
loadCountries();
loadRegions();
loadCities();
}
}
private void loadCountries()
{
Country country = new Country();
ddlCountry.DataSource = country.GetDataTable();
ddlCountry.DataTextField = "countryName";
ddlCountry.DataValueField = "countryID";
ddlCountry.DataBind();
}
private void loadRegions()
{
Region region = new Region();
ddlRegion.DataSource = region.GetRegionID(ddlCountry.SelectedValue);
ddlRegion.DataTextField = "regionName";
ddlRegion.DataValueField = "regionID";
ddlRegion.DataBind();
}
private void loadCities()
{
City city = new City();
ddlCity.DataSource = city.GetCityID(ddlRegion.SelectedValue);
ddlCity.DataTextField = "cityName";
ddlCity.DataValueField = "cityID";
ddlCity.DataBind();
}
protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
loadRegions();
if (ddlRegion.SelectedItem.Text == "No Province")
{
ddlRegion.Enabled = false;
loadCities();
}
else
{
ddlRegion.Enabled = true;
loadCities();
}
}
代码为Default.aspx后端(表现层)
任何与 Country 相关的业务逻辑都放在 Country 类中,同样的规则适用于 Region 和 City。
这个片段设计可以吗?也就是说,是否符合表现层标准设计?我如何改进此代码段设计(如果可能)?
我是新手,我试着确保我慢慢地但肯定地接受它。
最佳答案
我认为命名约定需要一些改进。仔细考虑您的类和方法的名称。
例如(类名):
您有一个名为 Country 的类,表明它代表一个国家/地区。但是,我认为不会。看起来它负责创建国家数据表。
另一个例子(方法名):
您有一个名为 Region.GetRegionID() 的方法。看起来(但我不完全确定)好像这是基于 RegionId 获得的区域,所以我更喜欢 GetByRegionId。对类名的同样批评也适用。
关于c# - 评估我的代码设计 - 简单片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4581785/