簡體   English   中英

將參數傳遞給不同視圖之間的顯示模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM