首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将模型传递给MVCMailer视图

将模型传递给MVCMailer视图
EN

Stack Overflow用户
提问于 2012-09-29 22:12:51
回答 2查看 1.7K关注 0票数 3

我有一个控制器,它将一个模型(ovw.ToList())传递给一个视图:

代码语言:javascript
复制
    //
    // GET: /Clinic/Overview/
    public ActionResult Overview()
    {
        IEnumerable<Clinic> ovw = from c in db.Clinics
                                  select c;
        return View(ovw.ToList());
    }

查看:

代码语言:javascript
复制
@model IEnumerable<ttp.Models.Clinic>

@foreach (var item in Model)
{        
<div>@item.ClinicName</div>

   @foreach (var item2 in item.Properties)
         {
         <div>@item2.Address</div>

这在屏幕上运行得非常好。

但是,当使用MVCMailer时,如果我想在电子邮件中显示相同的布局,我如何将ovw.ToList()传递给邮件程序视图,以便我可以以这种方式引用相同的模型:

(我不知道该放什么作为视图中的第一行):

代码语言:javascript
复制
@model IEnumerable<ttp.Models.Clinic>
@foreach (var item in Model)

谢谢你的帮助

标记

EN

回答 2

Stack Overflow用户

发布于 2012-09-29 22:29:32

您可以在本指南的“将数据传递给邮件视图”部分找到答案:https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide

要将模型和视图一起传递到MVCMailer,需要使用ViewData:

代码语言:javascript
复制
var comment = new Comment {From = me, To = you, Message = "Great Work!"};
ViewData = new ViewDataDictionary(comment);
票数 2
EN

Stack Overflow用户

发布于 2012-09-29 22:40:18

在我的项目中,我这样做,如下所示

我正在索引视图中显示我的所有类别列表

在我的模型类中

代码语言:javascript
复制
public List<CategoryDetails> CategoryData { get; set; }

我还创建了CategoryDetails类,并为我所有字段创建了一个属性,如下所示

代码语言:javascript
复制
public int CatID { get; set; }
[Required(ErrorMessage = "Enter Category Name")]
public string CatName { get; set; }
public string CatImage { get; set; }

并在我的主模型类中创建一个函数,如下所示

代码语言:javascript
复制
public void LoadCategory()
        {
            CategoryData = (from con in dbData.Categorys
                            select new CategoryDetails()
                            {
                                CatID = con.CatID,
                                CatName = con.CatName,
                                CatImage = con.CatImage,
                            }).ToList();
        }

在我的控制器中,我创建了一个动作,如下所示

创建我的模型类对象,并将模型函数传递给action

代码语言:javascript
复制
public ActionResult Index()
        {
           CategoryModel categorymodel = new CategoryModel();
            categorymodel.LoadCategory();
            return View(categorymodel);
        }

在我看来

代码语言:javascript
复制
@model PMS.Models.CategoryModel
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>
    Index</h2>
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table>
    <tr>
        <th>
            Category Name
        </th>           
        <th>
        </th>
    </tr>
    @foreach (var item in Model.CategoryData)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.CatName)
            </td>                             

        </tr>
    }
</table>

我想这会对你有帮助

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12653431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档