我将它添加到我的标题,<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>并能够访问ViewData及其所有内部以及所有mvc对象,如url和html.只要我添加" System.Web.Mvc.ViewPage<app.Models.tTable>",我就无法访问任何mvc类和辅助方法.我很困惑为什么会这样.我最近从mvc预览5升级到rc1,但是我转换到rc1是完美的,没有任何错误或错误.
model-view-controller viewdata header code-behind strong-typing
我有一个控制器调用视图.在视图中有一个局部视图,插入如下:
@{ Html.RenderPartial("PartialViewName", this.Model);}
Run Code Online (Sandbox Code Playgroud)
这很好用.
但是在控制器中我希望在ViewData或ViewBag中添加一些我将在局部视图中使用的东西.我怎样才能做到这一点?
所以,我有一个页脚,它将出现在我的Web应用程序的每个页面上
我需要它来渲染动态数据......这意味着每个控制器动作都需要返回包含这些数据的viewData ..以及特定于动作的数据
你们怎么实现这个?或许基本控制器的构造函数?
仍在尝试用MVC4来掌握新的SimpleMembership.我改变了模型,包括Forename和Surname,它工作得很好.
我想更改登录时显示的信息,而不是在View中使用User.Identity.Name我想做像User.Identity.Forename这样的事情,最好的方法是什么?
我的视图中有以下表格:
<table id="tblHelpRow">
<thead>
<tr class="title">
<th>
1
</th>
<th>
2
</th>
<th>
3
</th>
<th>
4
</th>
</tr>
</thead>
<tbody id="helpRowBody">
@{ ViewData["MattersTable"].ToString(); }
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我为此表创建一个主体并添加到DataView.我通过从另一个控制器重定向并传递我的DataTable来到达此控制器.在实际中我有点不同,但在这里我写的尽可能简单,以显示问题:
public ActionResult Matters(DataTable source)
{
string result = "";
foreach(DataRow dr in source.Rows)
{
result += "<tr>" +
"<td>" + dr["1"] + "</td>" +
"<td>" + dr["2"] + "</td>" +
"<td>" + dr["3"] + "</td>" +
"<td>" + dr["4"] + "</td>" +
"</tr>";
}
ViewData["MattersTable"] = result;
return View();
}
Run Code Online (Sandbox Code Playgroud)
但结果我得到了带有列标题的页面,但里面没有内容......源页面告诉我没有任何内容在...
可能有一种更简单的方法可以做到这一点,如果有的话我会全神贯注.我的情况是我在表单上有一个下拉列表,我成功填充了文本和值.我还需要在客户端上可用的db表中的相同表行中添加其他相关字符串值,因此当用户从下拉列表中选择时,此相关数据将填充在表单上的文本框中.我正在处理的记录只有4条,所以存储在客户端上没什么大不了的.我想过将这些数据作为列表通过ViewData传递并加载到javascript数组中.当用户从下拉列表中选择时 - 我将确定所选索引并从阵列中获取所需的相关数据.我已经将下拉项的值用于其他所需数据,因此我需要一种方法来获取此相关数据,而无需返回服务器.如果我在正确的轨道上,有人可以发布一个简单的例子来填充js数组,其中sting值作为ViewData中的List返回.
谢谢,
麦克风
我真的不知道在哪里寻找错误......情况:我有一个ASPX视图,其中包含一个表单和一些输入,当我点击提交按钮时,一切都被POST到我的一个ASP. NET MVC操作.
当我在那里设置断点时,它被正确击中.当我使用FireBug查看发送到操作的内容时,我正确地看到data1 = abc&data2 = something&data3 = 1234.
但是,我的行动方法没有任何结果.ViewData为空,没有ViewData ["data1"]或其他任何可以显示数据到达的内容.
怎么会这样?我在哪里可以开始寻找错误?
什么是最佳实践 - 仅使用没有任何参数的强类型视图,通过ViewData字典,或者在视图中使用类似的东西是一个不错的主意:
<%: (string)ViewData["helloMessage"]%>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我在数组中有以下数据.
[{"FirstName":"Nancy","LastName":"Davolio","Title":"Sales Representative"},
{"FirstName":"Andrew","LastName":"Fuller","Title":"Vice President, Sales"}]
Run Code Online (Sandbox Code Playgroud)
我想使用jquery将这些数据呈现到这样的表中:
<table id="employee">
<tr>
<td>Nancy</td>
<td>Davolio</td>
<td>Sales Representative</td>
...
</table>
Run Code Online (Sandbox Code Playgroud) 我将为我的应用程序构建一个使用许多向导的帮助程序.对于我的观点,有一个简单的电话:
@using (var wiz = MyHelper.EditWizard(Translate(Keys.User.ChangePasswordTitle)))
{
// RenderPartial(...)
}
Run Code Online (Sandbox Code Playgroud)
而是MyHelper一个自己的实现,HtmlHelper其原始的helper-object被封装为一个属性.
由于向导可以包含多个步骤,因此可以将内容拆分为多个部分视图.变量wiz有一些我需要在部分中访问的公共方法.
问题是,我怎样才能通过wiz-object?
在里面,EditWizard()我正在尝试将向导添加到ViewData.
myHelper.HtmlInternal.ViewData["currentWizard"] = theWizard;
Run Code Online (Sandbox Code Playgroud)
但是,在我的部分中,ViewData-dictionary总是为空的.目前我尝试获取数据
var wiz = (Wizard)ViewData["currentWizard"];
Run Code Online (Sandbox Code Playgroud)
但wiz总是如此null.
viewdata ×10
asp.net-mvc ×7
c# ×3
arrays ×1
code-behind ×1
controller ×1
header ×1
html ×1
html-table ×1
javascript ×1
jquery ×1
login ×1
razor ×1
user-data ×1