- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
很简单,当我的 ASP.NET MVC 页面被编译成 HTML 时,我在服务器上的表格中有数据,但这些数据不会出现。
我知道后端一切正常,因为在其他 View 上没有问题,但出于某种原因在这个页面上它不起作用。
我怀疑这与我的模型中有两个类有关,因为这是唯一这样做的页面,但我不太确定,因为我是 MVC 的新手。
这是模型,我将其称为 ModelFile.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Project.Subgroup.Models
{
public class ClassIActuallyNeed
{
public int Id { get; set; }
public string Html { get; set; } //<---This is the data I want
public string Version { get; set; }
public bool Deleted { get; set; }
}
public class ClassMyFriendInsistsINeed
{
public int Id { get; set; }
public string Name { get; set; }
public byte[] Signature { get; set; }
public bool Deleted { get; set; }
public virtual ClassIActuallyNeed ClassIActuallyNeed { get; set; }
}
}
...以及名为 MainController.cs 的 Controller :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Project.Models;
using Project.Subgroup.Models;
using System.Data.Entity;
using Project.Models.Authentication;
namespace Project.Subgroup.Controllers
{
public class MainController : Controller
{
private MyDatabase context = new MyDatabase();
// GET: Lobby/Home
public ActionResult Index()
{
return View();
}
[HttpGet]
public ActionResult FormPage()
{
return View();
}
[HttpPost]
public ActionResult FormPage(ClassIActuallyNeed model)
{
if (ModelState.IsValid)
{
using (var context = new MyDatabase())
{
var modelfile = new ModelFile
{
Name = model.Name,
Signature = model.Signature,
ClassIActuallyNeedId = model.ClassIActuallyNeedId
};
}
}
return View(model);
}
}
}
...最后是 View ,即 FormPage.cshtml:
@model Project.Models.ClassIActuallyNeed
@{
ViewBag.Title = "My Page";
Layout = "~/Subgroup/Views/Shared/_Layout.cshtml";
}
<h2 >@ViewBag.Title</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.DisplayFor(model => model.Html) //<---- the problem
//There is other form stuff in here
}
“Html”数据实际上只是一个包含 HTML 的字符串,我希望将其放入我的网页中。这是该表中唯一的一行,当我使用“DisplayNameFor”而不是“DisplayFor”时,它成功地将名称“Html”放在我的页面上。
对于代码呕吐,我深表歉意,我删除了所有我知道不相关的内容,但我无法真正确定我的问题出在哪里。 visual studio 或控制台中没有任何类型的错误。页面上的其他所有内容都工作正常,包括我的 JS 内容。
编辑:我感谢到目前为止的所有输入。我知道问题不在于我没有填充模型,因为它是由远程数据库填充的。这适用于所有其他页面。正如我怀疑的那样,RequestVerificationToken 肯定应该存在,并且是不相关的。
还要澄清一下:问题不在于它显示的是未格式化的文本而不是 HTML。问题是它根本不显示任何内容。
最佳答案
我目前可以看到您有 2 个问题:
您没有使用任何数据填充您的模型
[HttpGet]
public ActionResult FormPage()
{
//you need to pass the view some data, otherwise your model in your view
//will be null and you wont get any output (which is what you're seeing now)
ClassIActuallyNeed model = null;
//hardcoded:
//model = new ClassIActuallyNeed
//{
// Id = 1,
// Html = "<h1>Hello</h1>",
// Version = "something,
// Deleted = false
//};
//an example of using your context to fetch your model
using(var context = new MyDatabase())
{
var id = 1
model = context.ClassIActuallyNeeds.Single(x => x.Id == id);
}
return View(model);
}
您没有将 html 字符串呈现为 html
Html.DisplayFor(model => model.Html)
会将此属性呈现为页面上的纯文本,而不是看到 Hello
格式为 <h1>
标签,你会看到 <h1>Hello</h1>
作为页面上的纯文本。该框架这样做是为了防止注入(inject)攻击,我建议您稍微阅读一下,但就本文而言,这超出了范围。要实际呈现 html 字符串,请使用 Html.Raw(model => model.Html)
作为附加说明, <input name="__RequestVerificationToken" type="hidden" value="[a bunch of junk characters here]">
你看到的是你使用 @Html.AntiForgeryToken()
的结果.防伪 token 用于防止 CSRF 攻击,我还建议您继续阅读(安全很重要!)。由于此 View 中没有任何可编辑数据(这是我根据您使用 DisplayFor
做出的假设),因此我认为您的 View 或 AntiForgeryToken 中没有表单 ( Html.BeginForm
)。如果此数据是可编辑的并且可以回发到服务器,则忽略它并且这两个部分可能都需要保留在原位。
通过上面的 Controller 操作,您的 View 可以像下面这样简单地显示您的数据:
@model Project.Models.ClassIActuallyNeed
@{
ViewBag.Title = "My Page";
Layout = "~/Subgroup/Views/Shared/_Layout.cshtml";
}
<h2 >@ViewBag.Title</h2>
@Html.Raw(model => model.Html)
如果此数据需要可编辑,那么它看起来更像
@model Project.Models.ClassIActuallyNeed
@{
ViewBag.Title = "My Page";
Layout = "~/Subgroup/Views/Shared/_Layout.cshtml";
}
<h2 >@ViewBag.Title</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.Version)
@Html.HiddenFor(model => model.Deleted)
@Html.EditorFor(model => model.Html)
<input type="submit" value="Submit">
}
关于c# - 表中的数据未出现在 ASP.NET 页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56297804/
我有一台 MySQL 服务器和一台 PostgreSQL 服务器。 需要从多个表中复制或重新插入一组数据 MySQL 流式传输/同步到 PostgreSQL 表。 这种复制可以基于时间(Sync)或事
如果两个表的 id 彼此相等,我尝试从一个表中获取数据。这是我使用的代码: SELECT id_to , email_to , name_to , status_to
我有一个 Excel 工作表。顶行对应于列名称,而连续的行每行代表一个条目。 如何将此 Excel 工作表转换为 SQL 表? 我使用的是 SQL Server 2005。 最佳答案 这取决于您使用哪
我想合并两个 Django 模型并创建一个模型。让我们假设我有第一个表表 A,其中包含一些列和数据。 Table A -------------- col1 col2 col3 col
我有两个表:table1,table2,如下所示 table1: id name 1 tamil 2 english 3 maths 4 science table2: p
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 1 年前。 Improve th
下面两个语句有什么区别? newTable = orginalTable 或 newTable.data(originalTable) 我怀疑 .data() 方法具有性能优势,因为它在标准 AX 中
我有一个表,我没有在其中显式定义主键,它并不是真正需要的功能......但是一位同事建议我添加一个列作为唯一主键以随着数据库的增长提高性能...... 谁能解释一下这是如何提高性能的? 没有使用索引(
如何将表“产品”中的产品记录与其不同表“图像”中的图像相关联? 我正在对产品 ID 使用自动增量。 我觉得不可能进行关联,因为产品 ID 是自动递增的,因此在插入期间不可用! 如何插入新产品,获取产品
我有一个 sql 表,其中包含关键字和出现次数,如下所示(尽管出现次数并不重要): ____________ dog | 3 | ____________ rat | 7 | ____
是否可以使用目标表中的LAST_INSERT_ID更新源表? INSERT INTO `target` SELECT `a`, `b` FROM `source` 目标表有一个自动增量键id,我想将其
我正在重建一个搜索查询,因为它在“我看到的”中变得多余,我想知道什么 (albums_artists, artists) ( ) does in join? is it for boosting pe
以下是我使用 mysqldump 备份数据库的开关: /usr/bin/mysqldump -u **** --password=**** --single-transaction --databas
我试图获取 MySQL 表中的所有行并将它们放入 HTML 表中: Exam ID Status Assigned Examiner
如何查询名为 photos 的表中的所有记录,并知道当前用户使用单个查询将哪些结果照片添加为书签? 这是我的表格: -- -- Table structure for table `photos` -
我的网站都在 InnoDB 表上运行,目前为止运行良好。现在我想知道在我的网站上实时发生了什么,所以我将每个页面浏览量(页面、引荐来源网址、IP、主机名等)存储在 InnoDB 表中。每秒大约有 10
我在想我会为 mysql 准备两个表。一个用于存储登录信息,另一个用于存储送货地址。这是传统方式还是所有内容都存储在一张表中? 对于两个表...有没有办法自动将表 A 的列复制到表 B,以便我可以引用
我不是程序员,我从这个表格中阅读了很多关于如何解决我的问题的内容,但我的搜索效果不好 我有两张 table 表 1:成员 id*| name | surname -------------------
我知道如何在 ASP.NET 中显示真实表,例如 public ActionResult Index() { var s = db.StaffInfoDBSet.ToList(); r
我正在尝试运行以下查询: "insert into visits set source = 'http://google.com' and country = 'en' and ref = '1234
我是一名优秀的程序员,十分优秀!