mvc部分视图和模型问题

本文关键字:模型 问题 视图 mvc | 更新日期: 2023-09-27 18:20:47

型号1数据库客户端

clientID、客户端(名称)、客户端联系人和ICollection Countys

型号2 dbcounty

countyID,clientID,county(name),county其他

概述:

创建一个具有(View)Countys操作链接的客户端视图-完成+工作

创建一个具有(创建、编辑、删除、详细信息)操作链接的县视图-已完成+部分工作

去我的县:

@Html.ActionLink("Countys", "Index", "County", new { id=item.ClientID },null) 

从countys到我的新:

@Html.ActionLink("Create New", "Create", new { id = Model.ClientID})

从控制器到视图(传递clientID而非CountyID)

 public ActionResult Create(int id=0)
    {
        dbClient Client = db.Clients.Find(id);
        if (Client == null)
        {
            return HttpNotFound();
        }
        return View(Client);
    }

在视图中:问题是,我想创建一个郡,而不是使用来自客户的郡集合,但同时想显示我们正在为哪个客户创建这个郡

@model OilNGasWeb.ModelData.dbClient 
@{
ViewBag.Title = "Create";
}
<h2>Create County</h2>
@Html.Partial("_CreateCounty", Model.County) <----** Here ** Model.County is a string and Model.Countys is an icollection, i just want the normal model ???
<div>
@Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})
</div>
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

局部视图:似乎很奇怪,因为正在传递一个Icollection或字符串-。-但我确实想要这个模型,因为我认为这就是MVC框架正确创建插入所需要的

@model OilNGasWeb.ModelData.dbCounty
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
    <legend>Countys</legend>
  //data
  //data
  //data
</fieldset>

很抱歉,如果这没有意义,请告诉我你需要我学习mvc

请允许我用我更熟悉的方式修改上面的问题

想象一下vb.net应用程序

(你有客户,id在列表中)选择客户端后,您希望显示另一个包含countys信息的列表(这次是可编辑的)(现在您只想获取countys信息,为具有客户端选择的clientID的数据库创建一个插入行)

更好地解释了这一点,很难为MVC 创建这样的东西

另一个选项是以某种方式创建新的郡,包括客户端(及其各自的id)的下拉列表,并使用id和可编辑的郡信息?

mvc部分视图和模型问题

由于您正在跟踪哪些县属于每个客户端,我不明白为什么您需要传递除了ClientID之外的任何东西来进行创建。

所以你的创建视图可能看起来像

@model OilNGasWeb.ModelData.dbClient 
@{
    ViewBag.Title = "Create";
}
<h2>Create County</h2>
@Html.Partial("_CreateCounty", new OilNGasWeb.ModelData.dbCounty() { clientID = Model.ClientID } ) <!-- pass the client ID to the partial
<div>
    @Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})
</div>
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

对于"编辑/删除/查看详细信息"视图,您应该能够从模型中传递CountyID或对象本身。