如何将值从操作结果传递到视图

时间:2016-07-27 09:49:35

标签: c# asp.net .net asp.net-mvc razor

我需要将动作中的模型属性传递给视图, 我的一些模型属性将由用户填写,一些由我的代码填充。

这是我的模特

public class DocOnDemandModel
{
    public string Domain { get; set; }
    public DateTime Time { get; set; }
    [Required]
    [Display(Name = "Name")]
    public string Name { get; set; }
    [Required]
    [EmailAddress]
    [Display(Name = "Email")]
    public string Email { get; set; }
    [Required]
    [Display(Name = "Phone number")]
    public string PhoneNumber { get; set; }
    public string PdfUrl { get; set; }
    public string PageUrl { get; set; }
}

这是行动代码

public class DocOnDemandController : Controller
{
    // GET: Request
    public ActionResult Index(string PdfUrl)
    {
        string Domain = Request.UrlReferrer.Host;
        string PageUrl = Request.UrlReferrer.OriginalString;
        DateTime Time = DateTime.Now;

        ViewBag.PageUrl = PageUrl;
        ViewBag.Domain = Domain;
        ViewBag.PdfUrl = PdfUrl;
        ViewBag.Time = Time;

        return View();
    }
}

姓名,电子邮件和电话号码将由用户填写, Domain,Time,pdfUrl,PageUrl将由我的操作代码填写

现在我需要将Domain,Time,pdfUrl和PageUrl传递给View,我尝试使用ViewBag但出现错误

my view:

有人可以帮我解决问题并帮我解决问题吗? 提前致谢

3 个答案:

答案 0 :(得分:4)

您可以直接将模型传递给动作方法查看。

public ActionResult Index(string PdfUrl)
{
    var model = new DocOnDemandModel();
    string Domain = Request.UrlReferrer.Host;
    string PageUrl = Request.UrlReferrer.OriginalString;
    DateTime Time = DateTime.Now;

    model.PageUrl = PageUrl;
    model.Domain = Domain;
    model.PdfUrl = PdfUrl;
    model.Time = Time;

    return View(model);
}

然后在你看来:

@Html.LabelFor(m => m.Domain);

答案 1 :(得分:0)

@Html.Label((string)ViewBag.Domain)

答案 2 :(得分:0)

我设法以这种方式处理它 enter image description here

不确定这是否正确,但它正在完成工作,我的代码保持不变。