Asp.net mvc 使用变量的MVC4渲染项?

Asp.net mvc 使用变量的MVC4渲染项?,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我是MVC新手,在我看来: @{ MyObjectType myNameObject=getMyNameObject(); } <p> Name : @myNameObject.firstName </p> 当行名:@myNameObject.firstName通过模型或ViewBag来自数据库,并且仍然拾取@myNameObject.firstName的值时,尝试实现设计。可能吗? 谢谢您的控制器操作方法应该获取数据并将其传递给视图。使用ViewMo

我是MVC新手,在我看来:

@{
    MyObjectType myNameObject=getMyNameObject();
 }

<p>
   Name : @myNameObject.firstName
</p>
当行名:@myNameObject.firstName通过模型或ViewBag来自数据库,并且仍然拾取@myNameObject.firstName的值时,尝试实现设计。可能吗?
谢谢

您的控制器操作方法应该获取数据并将其传递给视图。使用ViewModel通常是一种方法,但ViewBag也适用于一次性数据。大概是这样的:

// View model.
public class MyViewModel
{
    public string Name {get; set;}
}

// Controller method.
public ActionResult MyPage()
{
    MyViewModel model = serviceLayer.GetMyData();
    return View(model);
}

// MyPage View.
@model MyViewModel
<p>Name: @Model.Name</p>
您的型号:

 public class MyNameObject
{
    public MyNameObject()
    {
        //getvalues from database
        //this.FirstName = yourObjectFromDatabase.FirstName;
    }
    public string FirstName { get; set; }
}
在要显示名字的视图中:

 @using WebApplication1.Models; //put it at the top of the view
 @{ Html.RenderPartial("FirstName", new MyNameObject());  }
你的看法:

      @model WebApplication1.Models.MyNameObject
      @{
          ViewBag.Title = "FirstName";
       }

       <h2>Name : @Model.FirstName</h2>

这是可能的。从controllerI将其作为模型的一部分传递我尝试使用模型,我得到的名称:@myNameObject.firstName呈现,而不是名称:John。模型的item=Name:@myNameObject.firstName我需要Name:@myNameObject.firstName在另一个视图中由用户编辑,这意味着用户可以看到Name:并能够将其更改为First Name:例如。而行名:@myNameObject.firstName应该来自数据库,进入这两个视图,所以如果它将被更改,那么两个视图都将反映它。