GVKun编程网logo

MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别(razorpage和mvc)

24

在本文中,我们将带你了解MVC和Razor中Html.TextboxFor和Html.EditorFor的区别在这篇文章中,我们将为您详细介绍MVC和Razor中Html.TextboxFor和Htm

在本文中,我们将带你了解MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别在这篇文章中,我们将为您详细介绍MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别的方方面面,并解答razorpage和mvc常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的angularjs – 与MVC Html.TextBoxFOr绑定的角度模型、ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映在服务器上执行的更改、ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映服务器上所做的更改、ASP.NET MVC3 - 带有@Html.EditorFor 的文本区域

本文目录一览:

MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别(razorpage和mvc)

MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别(razorpage和mvc)

为什么默认情况下在添加新的“编辑”视图时会更改这些内容?使用EditorFor()vs.有什么优势TextboxFor()

我找到了这个

默认情况下,Create 和 Edit 脚手架现在使用 Html.EditorFor 助手而不是 Html.TextBoxFor
助手。当“添加视图”对话框生成视图时,这改进了对数据注释属性形式的模型元数据的支持。

从这里引用。

答案1

小编典典

的优点EditorFor是您的代码不绑定到<input type="text". 因此,如果您决定更改文本框的呈现方式,例如将它们包装在 a
中,您div可以简单地编写自定义编辑器模板~/Views/Shared/EditorTemplates/string.cshtmlHtml.TextBoxFor将不得不到处修改它。您还可以使用数据注释来控制呈现方式。

angularjs – 与MVC Html.TextBoxFOr绑定的角度模型

angularjs – 与MVC Html.TextBoxFOr绑定的角度模型

我有与ASP.net MVC5绑定的模型控件

@Html.TextBoxFor(model => model.OriginLocation.City,new { @,data_ng_model = "address1.City",test_change = "" })

因此,当页面加载文本框输入的值被绑定并且应该显示来自具有Razor绑定控件的服务的值,后者我可以操纵该值来改变该控件的角度模型.
我所拥有的是文本框加载空.
我查看源时看到的值但是没有显示.

<inputdata-ng-model="address1.City" data-val="true" data-val-length="The field City must be a string with a maximum length of 50." data-val-length-max="50" id="OriginLocation_City" name="OriginLocation.City" test-change="" type="text" value="Manheim">

js片段

app.controller('LocationCtrl',["$scope",function ($scope) {
  $scope.address1 = { Label: 'address1' };

解决方法

ngModel优先于最初设置的值(它将值设置为“”,因为模型不存在).看看这里……

http://jsfiddle.net/yApeP/

但您可以使用ngInit指定值…

http://jsfiddle.net/D7vh7/

这意味着您可以在生成文本框时使用ngInit …

@Html.TextBoxFor(model => model.OriginLocation.City,test_change = "",data_ng_init = string.Format("address1.City = '{0}'",Model.OriginLocation.City.Replace("'",@"\'"))  })

ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映在服务器上执行的更改

ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映在服务器上执行的更改

我在ASP.NET MVC3中使用Ajax.BeginForm帮助程序提交一个表单,该表单用服务器上设置的表单中的新值替换自己.但是当我使用像Html.TextBoxFor这样的帮助器时,我得到了提交的值,而不是我在服务器上插入模型的值.

例如;我在动作中将SomeValue设置为4并将其显示在文本框中.我将值更改为8,点击提交,并期望在文本框中将值更改回4,但由于某种原因它保持为8.但如果我输出SomeValue而不使用Html助手,则表示4.任何人都有一些关于到底是怎么回事?

我的控制器:

public ActionResult Index(HomeModel model)
{
    model.someValue = 4;
    if (Request.IsAjaxRequest())
        return PartialView(model);
    return View(model);
}
public class HomeModel
{
    public int? SomeValue { get; set; }
}

我的观点(请注意,我的布局页面中没有所有必需的javascript):

<div id="ajaxtest">
@using(Ajax.BeginForm(new AjaxOptions{ InsertionMode = InsertionMode.Replace,UpdateTargetId = "ajaxtest",HttpMethod = "Post" })) {
    @Html.TextBoxFor(model => model.someValue)
    <input type="submit" value="Update" />
}
</div>

解决方法

您可以使用
ModelState.Clear()

在您的控制器方法中,使html助手使用您更改的模型.否则,他们使用表单提交中的值

看看:Asp.net MVC ModelState.Clear

ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映服务器上所做的更改

ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映服务器上所做的更改

我正在使用ASP.NET
MVC3中的Ajax.BeginForm帮助程序来提交一个表单,该表单将自己替换为服务器上设置的表单中的新值。但是,当我使用诸如Html.TextBoxFor之类的助手时,我得到的是提交的值,而不是我插入服务器模型中的值。

例如;
我在操作中将SomeValue设置为4,并在文本框中显示它。我将值更改为8,然后单击“提交”,并希望在文本框中将其更改回4,但是由于某种原因,它仍保持为8。但是,如果我不使用Html帮助程序而输出SomeValue,则会显示4。到底是怎么回事?

我的控制器:

public ActionResult Index(HomeModel model){    model.SomeValue = 4;    if (Request.IsAjaxRequest())        return PartialView(model);    return View(model);}public class HomeModel{    public int? SomeValue { get; set; }}

我的视图(请不要在布局页面中包含所有需要的JavaScript):

<div id="ajaxtest">@using(Ajax.BeginForm(new AjaxOptions{ InsertionMode = InsertionMode.Replace,    UpdateTargetId = "ajaxtest", HttpMethod = "Post" })) {    @Html.TextBoxFor(model => model.SomeValue)    <input type="submit" value="Update" />}</div>

答案1

小编典典

您可以使用

ModelState.Clear()

在您的控制器方法中,以使html助手使用您更改的模型。否则,他们使用表单提交中的值

看看:Asp.net MVC
ModelState.Clear

ASP.NET MVC3 - 带有@Html.EditorFor 的文本区域

ASP.NET MVC3 - 带有@Html.EditorFor 的文本区域

我有 ASP.NET MVC3 应用程序,也有用于添加新闻的表单。当 VS2010
创建默认视图时,我只有字符串数据的文本输入,但我希望文本区域用于新闻文本。我如何使用 Razor 语法来做到这一点。

文本输入如下所示:

@Html.EditorFor(model => model.Text)

我们今天的关于MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 的区别razorpage和mvc的分享已经告一段落,感谢您的关注,如果您想了解更多关于angularjs – 与MVC Html.TextBoxFOr绑定的角度模型、ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映在服务器上执行的更改、ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映服务器上所做的更改、ASP.NET MVC3 - 带有@Html.EditorFor 的文本区域的相关信息,请在本站查询。

本文标签: