私はWeb開発へのmvc方法を初めて使用します。インデックスと保存の2つのアクションを持つホームコントローラーと、MyModelと呼ばれるモデルと、MyModelをプロパティとして持つ静的クラスSomeDataがあります-SomeDataは、静的プロパティMyModelを持つ静的クラスです(これは私が持っているモデルクラスの型の ) と静的メソッド getdata() 、ModelClass への参照を返します
public static MyModel MyModels;
static SomeData()
{
MyModels = new MyModel { SomeValue = 100 , SomeString="ComingFromSomeData"};
}
public static MyModel getdata()
{
return MyModels;
}
以下は2つのアクションメソッドです。起動時にアクションインデックスがgetdataメソッドを呼び出してモデルをバインドし、データを見ることができますが、値を変更して保存をクリックすると、アクション「保存」に戻り、変更します渡されたプロパティ (100 を追加して "bro" を追加) を入力し、モデルを "保存" ビューに再度バインドしようとします (保存ビューは Index ビューに似ていますが、再度 Index ビューに移動する ActionLink もある点が異なります)。 、問題は、「保存」ビューで変更値を確認できないことですが、actionlink をクリックして再度インデックス ビューに移動すると、変更された値 (静的クラスに保存されている) を確認できます。
public ActionResult Index()
{
MyModel M = SomeData.getdata();
return View(M);
}
[HttpPost]
public ActionResult Save(ValidationPractice.Models.MyModel M)
{
if (ModelState.IsValid)
{
SomeData.MyModels.SomeValue = M.SomeValue + 100;
SomeData.MyModels.SomeString = M.SomeString+" bro";
}
MyModel whosemodel = SomeData.getdata();
//return View("Index", whosemodel)
return View(whosemodel);
}
次のようにモデル化します
public class MyModel
{
private int _somevalue;
[Required]
public int SomeValue
{
get { return _somevalue; }
set { _somevalue = value; }
}
[Required]
public string SomeString
{
get;
set;
}
}
および次のようなインデックスビュー
@model ValidationPractice.Models.MyModel
<form action="Home\Save" method="post">
<label>SomeLabel</label>  
@Html.EditorFor(model => model.SomeValue)
@Html.EditorFor(model=>model.SomeString)
<input type="submit" />
</form>
そして、次のように保存ビュー -
@model ValidationPractice.Models.MyModel
<form action="Home\Save">
<label>SomeLabel</label>  
@Html.EditorFor(@model => model.SomeValue)
@Html.EditorFor(@model=>model.SomeString) <br />
@Model.SomeString
@Model.SomeValue<br />
<input type="submit" />
@Html.ActionLink("Clicktoreturn", "Index");
注意すべき点は、 @Model.SomeString 、@Model.SomeValue は 200 と ComingFromSomeDataBro である更新された値を返しますが、バインドされたモデルのラムダ式 @model=> model.SomeString は返さないということです ...なぜそれが起こっているのですか?