【问题标题】:How can get view name in mvc 4 razor如何在 mvc 4 razor 中获取视图名称
【发布时间】:2016-03-06 07:46:19
【问题描述】:

我想读取一个活动视图名称并将其填充到 ViewName public Class

我创建了一个模型类,我在其中使用

获取文本框数据
public string ViewName { get; set; }
public string Name { get; set; }       
public string Email { get; set; }
public string Comment { get; set; }

在布局中,我在表单标记中编写了一个代码,它在公共字符串类的其余部分发送文本框值

<form method="post" action="/Home/SendMail" id="contactfrm" role="form">
                    <div class="col-sm-4">
                        <div class="form-group">
                            <label for="name">Name</label>
                            @Html.TextBox("Name", null, new { id = "name", @class = "form-control", placeholder = "Enter name", title = "Please enter your name (at least 2 characters)" })
                        </div>
                        <div class="form-group">
                            <label for="email">Email</label>
                            @Html.TextBox("Email", null, new { id = "email", @class = "form-control", placeholder = "Enter name", title = "Please enter a valid email address)" })
                        </div>
                    </div>
                    <div class="col-sm-4">
                        <div class="form-group">
                            <label for="comments">Comments</label>
                            @Html.TextArea("Comment", null, new { id = "comments", @class = "form-control", TextMode = "MultiLine", Columns = "3", Rows = "5", placeholder = "Enter your message…", title = "Please enter your message (at least 10 characters)" })
                        </div>
                        <button name="submit" type="submit" class="btn btn-lg btn-primary" id="submit">Send Your Message</button>
                        <div class="result"></div>
                    </div>
                </form>

我现在想做什么我还想读取活动视图名称以填充 ViewName 公共类,该公共类用于再次使用相同的视图回发它在布局中处于活动状态。你们知道如何阅读 viewName 并将其填写在 Public Class 中吗?请让我知道在哪里可以在表单标签中添加它。

提前谢谢你

【问题讨论】:

  • Pubic Class..来一个人..慢慢来并发布问题..这里没有竞争..还有为什么jquery被标记了?
  • 伙计,我正在学习 MVC,这有什么问题要向那里的专家寻求帮助。
  • 请看我无意冒犯。我只是想让你纠正你提出问题的方式。你在提问时需要遵循 SO 政策。保持你的问题最少但解释性。在你的上面的问题解释了你想在哪里阅读ViewName?在controller?如果是,那么在哪个controller?并且您已经创建了模型,但是使用上面的 view 代码,您并没有为模型创建强类型视图 w.r.t,如果您在查看上面的代码后阅读您的句子,那么您会发现很多错误,基本上都是废话。如果可能,请更正.. Pubic 的含义非常糟糕..
  • 这次我已经编辑了您的问题..另外..如果您提出更具体的问题,我们很乐意为您提供帮助..

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


【解决方案1】:

有 2 种可能的方法可以在 Razor View 上获取 View hame。

首先是 View 上的 VirtualPath 属性,您可以从路径获取 View Name:

@Path.GetFileNameWithoutExtension(Server.MapPath(VirtualPath))

第二个是ViewContext,但这只有在您使用 MVC 对话并在您的控制器中调用 return View() 而不明确传递视图名称时才有效。

@ViewContext.RouteData.Values["controller"].ToString()

【讨论】:

  • 嗨,teo van,谢谢你的建议,我得到这样的视图 @{ var ViewName= ViewContext.RouteData.Values["action"].ToString();我想知道如何在 get 类中获取 ViewName 我已经掩盖了我将调用代码以在表单标签下填写它
【解决方案2】:

如果您使用RazorView 您可以通过以下代码获取视图路径:

(this.ViewContext.View as RazorView).ViewPath

【讨论】:

  • 我想在get set类中发送视图名称,如何发送?
猜你喜欢
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 2015-09-18
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多