asp.net – 如何将模型从一个局部视图传递到另一个局部视图
发布时间:2020-12-16 03:16:00 所属栏目:asp.Net 来源:网络整理
导读:我有一个名为Result的模型.假设这有4个字段,如student_id,标记,状态,备注. 现在我有一个视图,其中显示了学生列表.在每个学生面前,有一个输入考试标记的按钮.单击按钮时,将打开一个弹出窗口,将有2个字段student_id,标记和2个按钮’pass’和’fail’. 单击“失
我有一个名为Result的模型.假设这有4个字段,如student_id,标记,状态,备注.
现在我有一个视图,其中显示了学生列表.在每个学生面前,有一个输入考试标记的按钮.单击按钮时,将打开一个弹出窗口,将有2个字段student_id,标记和2个按钮’pass’和’fail’. 单击“失败”按钮时,将显示另一个弹出窗口,仅用于输入备注. 我知道在第二个弹出窗口中使用隐藏字段的方法.有没有其他方法可以做到这一点? 模型类是: 学生列表视图 @{ List<User> Student = (List<User>)ViewData["Student"]; } <table id="table_id"> <tr> <th class="dbtc">S.No.</th> <th class="dbtc">Student Name)</th> <th style="width: 110px">Operate</th> </tr> @foreach (User usr in Student) { int index = Student.IndexOf(usr); <tr> <td class="dbtc"> @(Student.ToList().IndexOf(usr) + 1) </td> <td> @Html.ActionLink(usr.FirstName + " " + usr.LastName,"Details","User",new { id = usr.Id },null) </td> <td> @Ajax.ActionLink("Examine","Result",new { id = Model.Id,userId = usr.Id },new AjaxOptions { HttpMethod = "GET",UpdateTargetId = "divPopup",InsertionMode = InsertionMode.Replace,OnSuccess = "openPopup('Examine Content')" }) </td> </tr> 第一部分考察 @model ComiValve.Models.Result @using (Html.BeginForm("ExamPass","Student",new { @id = (int)ViewBag.id,userId = (int)ViewData["UserId"] },FormMethod.Post)) { <div id="divExamAdvice"></div> <div class="editor-label"> @Html.DisplayNameFor(model => model.Name) </div> <div class="editor-field"> @Html.TextAreaFor(model => model.Marks) </div> <div class="editor-field"> @Html.TextAreaFor(model => model.Grade) </div> <div class="login_submit_div"> <input type="submit" value="Pass" /> @Ajax.ActionLink("Fail","ExamAdvice",new { id = (int)ViewBag.id,new AjaxOptions { HttpMethod = "GET",OnSuccess = "openPopup('Exam Advice')" }) </div> } 重新生成的第二个局部视图(当用户点击失败时,此视图将打开.) @model ComiValve.Models.ExamContent @using (Html.BeginForm("ExamFail",new { id = Model.id },FormMethod.Post)) { <div id="divExamAdvice"></div> <div class="editor-label"> @Html.DisplayNameFor(model => model.Remarks) </div> <div class="editor-field"> @Html.TextAreaFor(model => model.Remarks) </div> <div class="left"> <input type="submit" value="Confirm Fail" /> </div> } 控制器的方法 public virtual ActionResult ExamContent(int id,int userId) { ViewBag.IsApprove = true; ViewBag.UserId = userId; ViewBag.id = id; return PartialView("ExamContent"); } public virtual ActionResult ExamAdvice(int id,int userId) { ViewBag.IsApprove = true; if (Request.IsAjaxRequest()) { Result result = new Result(); result.id = id; result.User = db.Users.Find(userId); return PartialView("ExamAdvice",result); } else { return RedirectToAction("Index"); } } 解决方法
为什么要在部分视图之间传递模型.您可以创建单个模型并在两个视图上使用它.如果有两个不同的表,请创建两个不同的“表”类型的“列表”.像这样
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; using System.ComponentModel; using System.Web.Mvc; namespace LearningMVCapp.Models { public class Data { public List<tbl_Dept> lstDepatrment; public List<tbl_employees> lstEmployees; //other properties } } 您也可以使用会话而不是隐藏字段,请参阅此链接http://www.dotnet-tricks.com/Tutorial/mvc/906b060113-Controlling-Session-Behavior-in-Asp.Net-MVC4.html. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 如何根据Screen vs Handheld切换_layout.
- asp.net – 当我提交时,为什么我的文本框无法识别值已更改?
- mvc项目架构分享系列之架构搭建之Repository和Service
- 使用FindByIdAsync时取消ASP.Net核心标识
- asp.net-mvc – 在ASP.NET MVC应用程序中使用Entity Framew
- asp.net – 在web.config中添加程序集引用
- angular-JS模仿Form表单提交
- asp.net-mvc – 在Web API 2中使用MVC 5 AttributeRouting的
- asp.net – 如何在主管批准更改之前保留新旧版本的记录?
- asp.net-mvc – NET 3.5 – MVC PetShop应用程序?
推荐文章
站长推荐
热点阅读