Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Asp.net mvc 3 MVC3剃须刀台加载在Span/Div/P之外_Asp.net Mvc 3_Razor - Fatal编程技术网

Asp.net mvc 3 MVC3剃须刀台加载在Span/Div/P之外

Asp.net mvc 3 MVC3剃须刀台加载在Span/Div/P之外,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我遇到了一个问题,我试图在父容器内部呈现,但MVC3 Razor始终呈现容器标记的外部。当试图通过Javascript控制外部父容器时,这会导致问题 例如: <span id="mySpan"> @Html.Action("Table1", "GetMyTable") </span> @动作(“表1”、“GetMyTable”) 输出的HTML: <span id="mySpan"></span> <table> &

我遇到了一个问题,我试图在父容器内部呈现
,但MVC3 Razor始终呈现容器标记的外部。当试图通过Javascript控制外部父容器时,这会导致问题

例如:

<span id="mySpan">
 @Html.Action("Table1", "GetMyTable")
</span>

@动作(“表1”、“GetMyTable”)
输出的HTML:

 <span id="mySpan"></span>  
 <table>
  <thead><tr><th>Header</th></tr></thead>
  <tbody>
   <tr><td>Foo</td></tr>
   <tr><td>Bar</td></tr>
  </tbody>
 </table>

标题
福
酒吧

无论我尝试将表粘贴到哪个父容器(div、span、p)中,表总是在容器的标记之外呈现!谁能解释我做错了什么?我应该如何编写Razor语法以正确地将表添加到这些标记中?

当您在Firebug中查看输出时,所发生的事情是,在浏览器引擎解析html后,您看到了html的“有效”视图。 在HTML5中,许多标记不需要显式关闭。如果在另一个无效的标记(如跨距内的表)中包含“内部”标记,则浏览器会假定您正在使用未关闭的跨距标记,因此在启动表标记之前,它会自动为您关闭该标记

这里最简单的修复方法是要么不“包装”表,要么用HTML5认为有效的东西包装它,比如节标记

另一个选项是返回XHTML1.1,其中一个表在div中有效(但不在span中)。而且,XHTML需要显式的结束标记,所以这种行为不会出现在那里。(对于XHTML5也是如此,尽管在XHTML5中用div包装表仍然无效)


查看原始资料会发现Razor并没有改变任何东西;它是浏览器。不过,看到这一点很好;因此,您知道浏览器期望的内容以及它如何处理您发送的内容。

您如何查看输出?我敢打赌你看到的是浏览器对HTML5的“更正”视图,其中span标记会自动结束,因为其中包含无效的内容(例如表标记)。这意味着您正在查看的是有效输出,而不是文本输出,它不应该从您期望的(无效)输出更改。也就是说:我从未见过Razor试图以这种方式更改您的文本输出,因此我更倾向于认为这是浏览器“修复”HTML的情况。@AndrewBarber-好,未意识到表在div或span中无效。为了回答你的问题,我在Firefox中通过Firebug查看HTML。有没有办法在div或其他html父级中获取一个表以用于javascript控制?它应该放在div中就可以了。但是,它在span或p中无效。使用viee源直接从浏览器查看;萤火虫正是我注意到的。(在本例中也很好地看到了这一点;如果html无效,css将不会像您认为的那样应用)@AndrewBarber-好吧,我想这不是一个剃刀问题,而是HTML5问题。Yikes,当人们需要控制一个包含表的HTML块时,他们会怎么做?这是我过去经常做的事情。你知道,就像前天一样。