Hesab üçün ASP.NET MVC5 Entity Framework Group Fields (Ölkə, Dövlət).

Şirkət, Ölkə və Dövlət siniflərim var. Dövlət Ölkə ilə əlaqəlidir və Ölkə Şirkət üçün xarici açardır

Problem Şirkət Görünüşü həm dövləti, həm də Ölkəni ayrı-ayrı açılan menyular kimi göstərir. Lakin mən Dövləti seçəndə müvafiq Ölkənin dəyişəcəyini və ya əksinə gözləyirəm. MVC5 EF Modelində bu mümkündürmü?

Şirkət Sinfi

public class Company
{
    public int CompanyID { get; set; }
    [Required]
    [StringLength(100,MinimumLength=3)]
    public string Name { get; set; }
    [StringLength(200)]
    public string Address { get; set; }
    public int? StateID { get; set; }
    public virtual State State { get; set; }
    public int? CountryID { get; set;}
    public virtual Country Country { get; set; }
    public int CompanyTypeID { get; set; }
    public virtual CompanyType CompanyType { get; set; }

}

Ölkə sinfi

public class Country
{
    public int CountryID { get; set; }
    [Required]
    [StringLength(100)]
    public string Name { get; set; }
    public virtual ICollection<State> States { get; set; }
    public virtual ICollection<Company> Companies { get; set; }
}

Dövlət sinfi

public class State
{
    public int StateID { get; set; }
    [Required]
    [StringLength(100)]
    public string Name { get; set; }
    public int CountryID { get; set; }
    public virtual Country Country { get; set; }

    public virtual ICollection<Company> Companies { get; set; }

}

Mən istinad üçün görünüş və Şirkət Görünüşünü düzəltdim və yaratdım

@using (Html.BeginForm()) {
@Html.AntiForgeryToken()

<div class="form-horizontal">
    <h4>Company</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    <div class="form-group">
        @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.Address, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.Address, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.Address, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.StateID, "StateID", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("StateID", null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.StateID, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.CountryID, "CountryID", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("CountryID", null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.CountryID, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        @Html.LabelFor(model => model.CompanyTypeID, "CompanyTypeID", htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.DropDownList("CompanyTypeID", null, htmlAttributes: new { @class = "form-control" })
            @Html.ValidationMessageFor(model => model.CompanyTypeID, "", new { @class = "text-danger" })
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>
    </div>
</div> } <div> @Html.ActionLink("Back to List", "Index")

@section Scripts { @Scripts.Render("~/bundles/jqueryval") }

Hər hansı bir kömək yüksək qiymətləndiriləcəkdir


person Gopi    schedule 16.07.2015    source mənbə


Cavablar (2)


Sizə lazım olan şey kaskad açılan siyahılardır. Budur CodeProject-dən bir nümunə.

http://www.codeproject.com/Articles/258172/Simple-Implementation-of-MVC-Cascading-Ajax-Drop-D

person LSU.Net    schedule 16.07.2015
comment
Təşəkkürlər, Visual studio mənim üçün kodu yarada bilməsi üçün bu iki xüsusiyyəti Model və Nəzarətçidə qruplaşdırmaq imkanı varmı? - person Gopi; 16.07.2015
comment
Xeyr. Siz kodu yazmalısınız. HTML nəzarətlərində başqalarının qeyd etdiyi kimi asılılıq anlayışı yoxdur - person LSU.Net; 16.07.2015

MVC5 EF Modelində bu mümkündürmü?

Bəli. Lakin siz işi görməlisiniz (və ya bunu sizin üçün görən nəzarətləri əldə etməlisiniz (alın).

Məhdudiyyət MVC deyil, lakin standart HTML nəzarətlərinin başqasından asılı olma anlayışı yoxdur. Ya Ölkə açılan menyusu dəyişdikdə Dövlət açılan menyusunun məzmununu dəyişdirmək üçün kod yazın (buraya seçilmiş ölkə üzrə ştatların siyahısının süzgəcdən keçirilməsi daxil ola bilər) və ya bunu edən üçüncü tərəf nəzarətlərini əldə edin (bu, çoxlu istifadəçi üçün ümumi tələbdir). orada nəzarət edir1).


1 Lakin Stack Overflow alətlərin tövsiyələrini yerinə yetirmir.

person Richard    schedule 16.07.2015
comment
Mən üçüncü tərəf nəzarətlərindən istifadə etmək fikrində deyiləm. Beləliklə, yeganə seçim bunu Görünüşdə əl ilə etməkdir və ya hər hansı bir həll yolu var - person Gopi; 16.07.2015