0

XSID(Guid)ファイルとID(nvarchar)ファイルを含むモデルがあります。@ Html.EditorFor(model => model.ID)を使用してID値を編集したいのですが、正しい値を取得できませんでした。 XSIDの値。ただし、@ Html.DisplayFor(model => model.ID)は正しい値を取得できます。なんでわからないの?

@using Student.Resource;
@using M = Student.Model;
@model M.Stu_XS

    <ul class="cur">
          <li class="line">
               <label>
                     @Stu_XS.ID:
                </label>
               <span>
                @Html.HiddenFor(model => model.XSID)
                @Html.DisplayFor(model => model.ID)
                @Html.EditorFor(model => model.ID)
                @Html.ValidationMessageFor(model => model.ID)
               </span>
        </li>
    </ul>
4

1 に答える 1

1

ルートに ID がある場合、モデルの値ではなく、その値が使用されます。

たとえば、次のモデルがあるとします。

public class Stu_XS
{
    public int ID { get; set; }
    public Guid XSID { get; set; }
}

および次のコントローラー アクション:

public ActionResult SomeAction(int id)
{
    var model = new Stu_XS();
    model.ID = 123;
    return View(model);
}

次のようにリクエストします。

/somecontroller/someaction/456

モデルからではなく、ルートからのものをHtml.EditorFor表示します。それは設計によるものです。この動作を変更したい場合は、モデルの値が使用されるようにからを削除する必要があります。456123IDModelState

public ActionResult SomeAction(int id)
{
    var model = new Stu_XS();
    model.ID = 123;
    ModelState.Remove("id");
    return View(model);
}
于 2013-03-13T09:05:28.907 に答える