Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从视图MVC中的控制器获取对象_C#_Asp.net Mvc_Model View Controller - Fatal编程技术网

C# 从视图MVC中的控制器获取对象

C# 从视图MVC中的控制器获取对象,c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,我需要创建一个html格式的电子邮件正文。在HistoryController中,我定义了一个metod,该metod返回一个对象(Course),该对象的属性将用于如我所说的将身体装箱。我不知道如何在视图中获取对象。我见过一种使用ActionResult的方法,但我不想展示这种观点,它只是作为创建电子邮件的辅助工具 我明白了 历史控制器 public static CURSO courseSelected = new CURSO(); public static CURSO courseSel

我需要创建一个html格式的电子邮件正文。在HistoryController中,我定义了一个metod,该metod返回一个对象(Course),该对象的属性将用于如我所说的将身体装箱。我不知道如何在视图中获取对象。我见过一种使用ActionResult的方法,但我不想展示这种观点,它只是作为创建电子邮件的辅助工具

我明白了

历史控制器

public static CURSO courseSelected = new CURSO();
public static CURSO courseSel()
{
    courseSelected.Name = "Physics";
    return courseSelected;//cursoSelected del tipo CURSO
}
查看

@model Project.Models.Course
@{ 
    var courseSel = Project.Models.HistoryController.courseSel(); 
}
<fieldset class="fHorizontalCenter">
        <label style="font-size:18px">Welcome to course of </label><label>@courseSel.Name</label>< br />
</fieldset>
@model Project.Models.Course
@{ 
var courseel=Project.Models.HistoryController.courseel();
}
欢迎来到coursel@coursel.Name课程
但是我不能使用变量的de数据,它总是打印这个


欢迎来到@courseel.Name课程

假设您有一个如下所示的模型:

namespace Project.Models
{
    public class Course
    {
        public string CourseName { get; set; }
    }
} 
public class HistoryController : Controller
 {
    public ActionResult Index(/*put whatever parameters in here*/)
    {
       // Fetch your model 
       // just example data
       var course = new Course { CourseName = "your coursename" };

       var html = GetEmailText(course);

        // send your email

        return View(); // or redirect to action
    }

    private string GetEmailText(Course course)
    {
        return RenderRazorViewToString("CourseEmailTemplate", course);
    }

    private string RenderRazorViewToString(string viewName, object model)
    {
        ViewData.Model = model;
        using (var sw = new StringWriter())
        {
            var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,
                                                                     viewName);
            var viewContext = new ViewContext(ControllerContext, viewResult.View,
                                         ViewData, TempData, sw);
            viewResult.View.Render(viewContext, sw);
            viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
            return sw.GetStringBuilder().ToString();
        }
    }
}
以及视图/共享文件夹中名为“CourseEmailTemplate.cshtml”的视图:

@model Project.Models.Course
@{
    Layout = null;
}

<fieldset class="fHorizontalCenter">
    <label style="font-size:18px">Welcome to course of </label><label>@Model.CourseName</label>< br />
</fieldset>

中窃取的一些代码如何访问视图?为什么控制器位于模型命名空间中?视图具有.cshtml扩展名?视图中的所有标签是否正确打开和关闭?