1

プロファイルを追加するためのダイアログをユーザーに開くリンクがあります。

隠しフィールドにデータを配置したい

コントローラがこのビューを呼び出しますが、コントローラにモデルを入力してから、このビューのモデルを使用して値のプロパティを設定する方法がわかりません。

これは私のコントローラーです。ご覧のとおり、私はViewBagを使用していますが、これは望ましくありません。

public ActionResult EditUser()
    {
        try 
        {
            MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
            ViewBag.user = membershipUser;

            return PartialView();

        }
        catch (Exception e)
        {   
            return Content("Error: " + e);
        }
    }

モデルを作成してビューで使用する方法を理解するのを手伝っていただけませんか。どうもありがとう...

4

3 に答える 3

4

作成したモデルをビュー/部分ビューの呼び出しに渡すだけです。したがって、インスタンスでは、呼び出すのではなく、次のようにします。

ViewBag.user = membershipUser

使用する必要があります:

return PartialView(membershipUser);

@modelビューの上部に宣言があることを確認する必要があります。次のようになります。

@model MembershipUser;
<p>@Model.SomeField</p>
于 2012-11-22T23:49:15.137 に答える
1

ビューにを渡すだけMembershipUserで、それをモデルとして使用できます。コントローラのアクションメソッドはユーザーを取得し、ビューに返します。

MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
return PartialView("PartialViewName", membershipUser); // Specify the partial view name and pass the membership user as a model

@model次に、ビューでディレクティブを追加し、次のプロパティにアクセスしますMembershipUser

@model MembershipUser

// If you want to use a hidden field for a property
@Html.HiddenFor(m => m.SomeProperty)

// Uses the default editor template for the data type to allow user to edit the property
@Html.EditorFor(m => m.SomeProperty)

 // If you just want to show the property
@Model.SomeProperty
于 2012-11-22T23:56:45.333 に答える
0

モデル名UserModelを追加し、そこでユーザーオブジェクトを定義する必要があります

 public class UserModel
        {   
            public User UserInfo { get; set; }

        }

次に、EditUser.cshtmlのPartialviewの先頭に@modelUI.Web.App.Models.UserModelを追加します。

その後、コントローラーコードも変更します-

public ActionResult EditUser()
    {
        try 
        {
            MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
            UserModel usermodel=new UserModel();
            usermodel.UserInfo = membershipUser;
            return PartialView(usermodel);

        }
        catch (Exception e)
        {   
            return Content("Error: " + e);
        }
    }

コントローラーからビューバッグを取り外します。これがお役に立てば幸いです。何か問題があれば教えてください。

于 2012-11-23T07:49:28.190 に答える