[英]Passing parameter to displaytemplate between different views
我有幾個具有不同視圖模型的視圖。
每個視圖都有“ProjectId”下拉列表,我想在提交之前在“ProjectId”下拉列表旁邊顯示所選項目的開始日期。
而“ProjectId”下拉列表是一個ViewBag。
除了向每個視圖模型添加開始日期之外,還有其他方法嗎?
看法:
<div class="form-inline">
Project:
<div>
@Html.DropDownList("ProjectId", new SelectList(ViewBag.ProjectsDropDownList, "Value", "Text"))
</div>
</div>
如果您不提供代碼,很難回答您,但我已經查看了https://www.tutorialsteacher.com/mvc/viewbag-in-asp.net-mvc關於 viewbags,歡迎您擁有看着。
它表明您可以簡單地在前端使用具有以下內容的標簽:
<label>Project Start Date:</label> @ViewBag.projectStartDate
如果您使用 ASP.NET 或 HTML 進行客戶端編碼
在后端是這樣的:
namespace MVC_BasicTutorials.Controllers
{
public class ProjectController : Controller
{
string projectName;
int projectId;
string projectDate;
public ProjectController ()
{
projectName = "new project";
projectId = 0;
projectDate = "01-01-1990";
}
public ActionResult returnDate()
{
ViewBag.projectStartDate = this.projectDate;
return View();
}
}
}
我使用的最后一種方法:
項目控制器:
public PartialViewResult ProjectDate(int projectId)
{
// get project start date
ViewBag.StartDate = startDate;
return PartialView("_ProjectDate");
}
_ProjectDate.cshtml:
// use ViewBag.StartDate to render html what I want
get_start_date.js
$(document).ready(function () {
var projectId = $('#ProjectId').val();
if (projectId != undefined) {
$.ajax({
url: '/Projects/GetProjectDate',
data: { ProjectId: projectId },
success: function (result) {
$("#project_date").html(result);
}
});
}});
_Layout.cshtml import get_start_date.js,在我需要的頁面中插入這段代碼:
<div id="project_date"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.