私のビューには、ユーザー領域ごとにチェックボックスがあり、ユーザーに対してDefaultRegionの列が1つあります。 DefaulRegionはラジオボタンになります。これは、ユーザーがデフォルトリージョンを1つしか使用できないためです。RadioButtonForを使用して1つのラジオボタンのみを選択できるようにします
私は私の見解では、このコードを持っている -
var usrRegions = (from r in db.REGIONs.Where(r => r.ACTIVE_INDICATOR == "Y")
join ur in db.USER_REGION.Where(u => u.USER_ID == userInfo.user.USER_ID) on r.REGION_ID equals ur.REGION_ID into urs
from ur in urs.DefaultIfEmpty()
select new UserRegion()
{
RegionId = r.REGION_ID,
RegionName = r.REGION_NAME,
IsActive = (ur.USER_ID != null),
efaultRegion = (ur.DEFAULT_USER_REGION_INDICATOR != null?"D":"N")
}).ToList();
userInfo.UserRegions = usrRegions;
この - コントローラにデータをフェッチするためのコードがどのように見える
public class UserRegion
{
public int RegionId { get; set; }
public string RegionName { get; set; }
public bool IsActive { get; set; }
public string DefaultRegion { get; set; }
}
-
@for (int i = 0; i < @Model.UserRegions.Count(); i++)
{
@Html.LabelFor(m => m.UserRegions[i].IsActive, Model.UserRegions[i].RegionName)
@Html.HiddenFor(m => m.UserRegions[i].RegionId)
@Html.CheckBoxFor(m => m.UserRegions[i].IsActive)
@Html.RadioButtonFor(m => m.UserRegions[i].DefaultRegion, Model.UserRegions[i].RegionId)
}
私のモデルは次のようになりますチェックボックスとラジオボタンが正しく表示されますが、複数のラジオボタンを選択できます。私はGroupNameを何らかの形で割り当てて、同じグループ内でGroupNameを考慮し、新しいラジオボタンが選択されたときにすべてのラジオを選択解除する必要があることを理解します。しかし、私はこれを把握することができず、バインドモードでチェックボックスを維持しています。
この件に関するお手伝いがあります。