Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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# 部分视图(.ascx)中的Html.TextBox(“标题”)获取值;标题「;从父视图_C#_Asp.net Mvc_Partial Views - Fatal编程技术网

C# 部分视图(.ascx)中的Html.TextBox(“标题”)获取值;标题「;从父视图

C# 部分视图(.ascx)中的Html.TextBox(“标题”)获取值;标题「;从父视图,c#,asp.net-mvc,partial-views,C#,Asp.net Mvc,Partial Views,在我的论坛项目中,我有一个用于添加新论坛帖子的局部视图(.ascx)。论坛帖子位于主题(类别)内,这两个表都有一个名为Title的列 现在的问题是,当我将部分视图放在主题页面上时,它会自动从主题中获取标题值,从而用主题标题填充我的标题文本框不理想 CreatePost.ascx中的代码只是 <label for="Title">Title</label> <%= Html.TextBox("Title") %> 标题 我尝试将其更改为,但是文本框的值没有发

在我的论坛项目中,我有一个用于添加新论坛帖子的局部视图(.ascx)。论坛帖子位于主题(类别)内,这两个表都有一个名为
Title
的列

现在的问题是,当我将部分视图放在主题页面上时,它会自动从主题中获取标题值,从而用
主题标题
填充我的标题文本框不理想

CreatePost.ascx中的代码只是

<label for="Title">Title</label>
<%= Html.TextBox("Title") %>
标题
我尝试将其更改为
,但是文本框的值没有发布

这是正常的行为吗?有没有一种方法可以在不清除Javascript的情况下消除它

我甚至尝试过使用第二个重载
Html.TextBox(“Title”,“some value”)
设置一个值,但是它被覆盖了

请帮忙

尝试以下操作:

CreatePost.ascx

   <label for="Title">Title</label>
   <%= Html.TextBox("Title") %>
需要确保CreatePost.ascx在

<% using (Html.BeginForm()) { %>....
  ..
  <% Html.RenderPartial("CreatePost.ascx");
  ..
  ..
<% } >
。。。。
..

听起来问题在于用于渲染局部视图的代码。RenderPartial将是从父视图通过模型的默认传递,因此当主题标题显示在局部视图中时,您将看到该行为。但是,您可以覆盖此参数-允许您传入新模型的参数之一

比如:

<% Html.RenderPartial("CreatePost.ascx", new Post());%>


要将新模型传递到局部视图(在本例中为空帖子)。

如果使用ASP.NET MVC 2,则应始终使用能够正确处理绑定的强类型帮助程序:

<%= Html.TextBoxFor(x => x.Category.Title) %>
x.Category.Title)%%>

Hi@john,我已经有了ActionResult设置,里面的标题我做不了什么。我成功地获得了ActionResult中的值,问题在于它被填充在页面上。另外,我的部分视图中已经有Html.BeginForm(),我是否需要在它周围包装一个呢?不,您不必进行包装。试试像这样的东西
<%= Html.TextBoxFor(x => x.Category.Title) %>