C# 部分视图(.ascx)中的Html.TextBox(“标题”)获取值;标题「;从父视图
在我的论坛项目中,我有一个用于添加新论坛帖子的局部视图(.ascx)。论坛帖子位于主题(类别)内,这两个表都有一个名为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") %> 标题 我尝试将其更改为,但是文本框的值没有发
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) %>