Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在mvc实体框架5中将视图和部分视图数据保存到数据库_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 如何在mvc实体框架5中将视图和部分视图数据保存到数据库

C# 如何在mvc实体框架5中将视图和部分视图数据保存到数据库,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,这是我的控制器代码。我有一个观点,里面我有一个局部观点。在部分视图的末尾,我有一个提交按钮。单击此按钮时,我想将主视图和局部视图的数据保存到各自的表中 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcApplication2.Models; using System.Data.Entity.Validation;

这是我的控制器代码。我有一个观点,里面我有一个局部观点。在部分视图的末尾,我有一个提交按钮。单击此按钮时,我想将主视图和局部视图的数据保存到各自的表中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication2.Models;
using System.Data.Entity.Validation;

namespace MvcApplication2.Controllers
{
    public class HomePageController : Controller
    {
        //
        // GET: /HomePage/
        MVCDemoEntities db = new MVCDemoEntities();
        public ActionResult Submit()
        {
            List<DocTypeMaster> alldoclist = new List<DocTypeMaster>();
            using (MVCDemoEntities db = new MVCDemoEntities())
            {
                alldoclist = db.DocTypeMasters.OrderBy(a => a.DocTypeName).ToList();
            }
            ViewBag.docid = new SelectList(alldoclist, "Id", "DocTypeName");
            return View();

        }


        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Submit(DetailsEntry de)
        {
            List<DocTypeMaster> alldoclist = new List<DocTypeMaster>();
            using (MVCDemoEntities db = new MVCDemoEntities())
            {
                alldoclist = db.DocTypeMasters.OrderBy(a => a.DocTypeName).ToList();
            }

            ViewBag.docid = new SelectList(alldoclist, "Id", "DocTypeName", de.DocumentId);



                       return View(de);
        }



        [HttpGet]
        public PartialViewResult RacersByCountryPartial(string id)
        {
            Passport ps = new Passport();
            Pan pn = new Pan();
            string id1 = id.Trim();
            if (id1 == "Passport")
                return PartialView("~/Views/HomePage/id1.cshtml", ps);
            else
                return PartialView("~/Views/HomePage/pancard.cshtml", pn);


        }   
        [HttpPost]
        public ActionResult RacersByCountryPartial(string id,Passport ps, Pan pn,DetailsEntry dt)
        {

            return View(id);
        }
    }


}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
使用mvcapapplication2.模型;
使用System.Data.Entity.Validation;
命名空间mvcapapplication2.Controllers
{
公共类HomePageController:控制器
{
//
//获取/主页/
MVCDemoEntities db=新的MVCDemoEntities();
公共行动结果提交()
{
List alldoclist=新列表();
使用(MVCDemoEntities db=new MVCDemoEntities())
{
alldoclist=db.DocTypeMasters.OrderBy(a=>a.DocTypeName.ToList();
}
ViewBag.docid=新的SelectList(alldoclist,“Id”,“DocTypeName”);
返回视图();
}
[HttpPost]
[ValidateAntiForgeryToken]
公共行动结果提交(详细信息)
{
List alldoclist=新列表();
使用(MVCDemoEntities db=new MVCDemoEntities())
{
alldoclist=db.DocTypeMasters.OrderBy(a=>a.DocTypeName.ToList();
}
ViewBag.docid=新的SelectList(alldoclist,“Id”,“DocTypeName”,de.DocumentId);
返回视图(de);
}
[HttpGet]
public PartialViewResult RacersByCountryPartial(字符串id)
{
Passport ps=新护照();
Pan pn=新Pan();
字符串id1=id.Trim();
如果(id1=“护照”)
返回PartialView(“~/Views/HomePage/id1.cshtml”,ps);
其他的
返回PartialView(“~/Views/HomePage/pancard.cshtml”,pn);
}   
[HttpPost]
公共行动结果RacersByCountryPartial(字符串id、Passport ps、Pan pn、DetailsEntry dt)
{
返回视图(id);
}
}
}
这是我的主要观点

@model MvcApplication2.DetailsEntry

@{
    ViewBag.Title = "Submit";
}

<h2>Submit</h2>

@using (Html.BeginForm("Submit", "HomePage", FormMethod.Post))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>DetailsEntry</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.ClientId)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.ClientId)
            @Html.ValidationMessageFor(model => model.ClientId)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.ClientName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.ClientName)
            @Html.ValidationMessageFor(model => model.ClientName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.EmployeeId)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.EmployeeId)
            @Html.ValidationMessageFor(model => model.EmployeeId)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.EmpCitizenId)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.EmpCitizenId)
            @Html.ValidationMessageFor(model => model.EmpCitizenId)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.EmpName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.EmpName)
            @Html.ValidationMessageFor(model => model.EmpName)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Nationality)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Nationality)
            @Html.ValidationMessageFor(model => model.Nationality)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.DocumentId)
        </div>
        <div class="editor-field">

           @Html.DropDownListFor(Model => Model.DocumentId, @ViewBag.docid as SelectList,"Select document Type")
            @Html.ValidationMessageFor(Model=>Model.DocumentId)
            </div>


    </fieldset>
}
<div id="container"> </div>
<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="//code.jquery.com/jquery-1.11.2.min.js" type="text/javascript"></script>
<script type="text/javascript" src="scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery-1.7.1.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#DocumentId").change(function () {
            $("#log").ajaxError(function (event, jqxhr, settings, exception) {
                alert(exception);
            });

            var countrySelected = $("select option:selected").first().text();

            $.get('@Url.Action("RacersByCountryPartial")',
                              { id: countrySelected }, function (data) {

                    $("#container").html(data);
                });
        });
    });
</script>
@model mvcapapplication2.DetailsEntry
@{
ViewBag.Title=“提交”;
}
提交
@使用(Html.BeginForm(“提交”、“主页”、FormMethod.Post))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
哨兵
@LabelFor(model=>model.ClientId)
@EditorFor(model=>model.ClientId)
@Html.ValidationMessageFor(model=>model.ClientId)
@LabelFor(model=>model.ClientName)
@EditorFor(model=>model.ClientName)
@Html.ValidationMessageFor(model=>model.ClientName)
@LabelFor(model=>model.EmployeeId)
@EditorFor(model=>model.EmployeeId)
@Html.ValidationMessageFor(model=>model.EmployeeId)
@LabelFor(model=>model.EmpCitizenId)
@EditorFor(model=>model.EmpCitizenId)
@Html.ValidationMessageFor(model=>model.EmpCitizenId)
@LabelFor(model=>model.EmpName)
@EditorFor(model=>model.EmpName)
@Html.ValidationMessageFor(model=>model.EmpName)
@LabelFor(model=>model.national)
@EditorFor(model=>model.national)
@Html.ValidationMessageFor(model=>model.national)
@LabelFor(model=>model.DocumentId)
@Html.DropDownListFor(Model=>Model.DocumentId,@ViewBag.docid作为SelectList,“选择文档类型”)
@Html.ValidationMessageFor(Model=>Model.DocumentId)
}
$(文档).ready(函数(){
$(“#DocumentId”).change(函数(){
$(“#log”).ajaxError(函数(事件、jqxhr、设置、异常){
警报(例外);
});
var countrySelected=$(“选择选项:选定”).first().text();
$.get('@Url.Action(“RacersByCountryPartial”),
{id:countrySelected},函数(数据){
$(“#容器”).html(数据);
});
});
});
这是我的部分观点

@model MvcApplication2.Passport

<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

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

    <fieldset>
        <legend>Passport</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.pissueddate)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.pissueddate)
            @Html.ValidationMessageFor(model => model.pissueddate)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.pissuedlocation)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.pissuedlocation)
            @Html.ValidationMessageFor(model => model.pissuedlocation)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.pimage)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.pimage)
            @Html.ValidationMessageFor(model => model.pimage)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>
@model mvcapapplication2.Passport
@使用(Html.BeginForm()){
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
护照
@LabelFor(model=>model.pissueddate)
@EditorFor(model=>model.pissueddate)
@Html.ValidationMessageFor(model=>model.pissueddate)
@LabelFor(model=>model.pissuedlocation)
@EditorFor(model=>model.pissuedlocation)
@Html.ValidationMessageFor(model=>model.pissuedlocation)
@LabelFor(model=>model.pimage)
@EditorFor(model=>model.pimage)
@Html.ValidationMessageFor(model=>model.pimage)

} @ActionLink(“返回列表”、“索引”)

在部分视图的末尾有一个提交按钮。我想将主视图和部分视图数据保存在单个按钮上,然后单击相应的表。请告诉我。

所以,如果我正确理解你想要实现的目标

  • 从局部视图中删除“提交”按钮并将其移动到主视图
  • 从局部视图中删除表单,让主表单处理整个用户的输入-在您的情况下,您有两个表单,这意味着每个表单都应该向各自的控制器/操作提交自己的数据。html表单的嵌套是不可能的-
  • 如果你需要这样做