2012-07-24 32 views
0

我正在嘗試一個基本的.net .net mvc項目配置解釋如下;有趣的Asp .net mvc示例

在第一次提交之前,結果是在預期的照片中留下一個,意外地在提交文本框(@Html.TextBoxFor(model => model.Name))和文本(@Model.Name)顯示不同的值,如在照片中的右側所示;爲什麼這樣?儘管他們的模型是獨一無二的,但它們顯示出不同的值

enter image description here

型號:

public class Personnel 
{ 
    public string Name { get; set; } 
} 

查看:

@model deneme.Models.Personnel 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 


@using (Html.BeginForm("Index", "Home")) 
{ 
    @Html.TextBoxFor(model => model.Name) 

    <br/> 
    <br/> 

    @Model.Name 

    <br/> 
    <br/> 

    <input type="submit" value="submit" /> 
} 

控制器:

public ActionResult Index(Personnel personnel) 
{ 
    if (string.IsNullOrEmpty(personnel.Name)) 
    { 
     personnel.Name = "Ahmet"; 
    } 
    else 
    { 
     personnel.Name = personnel.Name + "server"; 
    } 

    return View(personnel); 
} 
+0

您是否在第一次填寫文本框時提交了表單?然後它按照您的代碼正常工作 – Shyju 2012-07-24 20:45:03

+0

不,結果相同。他們仍然不同。 – serefbilge 2012-07-25 06:49:38

+0

你使用什麼瀏覽器?我推測瀏覽器可能會自動填寫表單字段.... – Tuan 2012-07-25 07:50:22

回答

0

編輯:我以前的回答沒有回答你的問題。

如果將ModelState.Clear()添加到控制器操作中,它將按照您的需要工作。

public ActionResult Index(Personnel personnel) 
{ 
    if (string.IsNullOrEmpty(personnel.Name)) 
    { 
     personnel.Name = "Ahmet"; 
    } 
    else 
    { 
     personnel.Name = personnel.Name + "server"; 
    } 

    ModelState.Clear(); 
    return View(personnel); 
} 
+0

真正的問題是爲什麼文本和文本框提交後有不同的值?兩者都與相同的模型有關。 – serefbilge 2012-07-25 07:00:38

+0

@serefbilge,我誤解了這個問題,這應該修復它。 – Vedran 2012-07-25 08:16:15

+0

是的,它的工作機制是什麼?有沒有類似事物的視圖狀態(我認爲它是模型狀態)? – serefbilge 2012-07-25 09:17:17