小编Chr*_*ens的帖子

从控制器MVC 4访问UserProfile

所有这一切的新功能:我有一个具有UserProfile属性的Character模型,因此可以将一个字符与UserProfile条目联系起来.这将使UserProfile成为Character的外键.

人物模型:

public class Character
{
    public int ID { get; set; }
    public virtual UserProfile user { get; set; }
    public string name { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)

(我将UserProfile属性设为虚拟因为另一个帖子,不确定是否应该保留)

在创建新字符时,我想将该字符的用户属性设置为发出请求的当前Web用户的对象.例如,以下是用户制作角色的过程:登录/创建带网站的用户帐户点击"创建角色"

[HttpPost]
public ActionResult Create(Character character)
{
    if (ModelState.IsValid)
    {
        character.user = ???
        db.Characters.Add(character);
        db.SaveChanges();
        ...
}
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何从我的控制器访问UserProfile表.通常,为了访问表,我创建了dbContext的对象,但UserProfile表使用默认的MVC 4上下文,而我的应用程序的所有其他对象都使用不同的dbContext.

我猜我有几个解决方案,我都无法弄明白该怎么做:

  1. 我应该设置我的应用程序,以便所有表使用1个dbContext吗?如果是这样,怎么样?
  2. 有没有办法创建UserProfile已经使用的默认dbContext的对象?

如果我的任何术语已关闭或者我遗漏了重要信息,请提前抱歉.我会根据需要提供更多.谢谢

c# entity-framework asp.net-mvc-4

5
推荐指数
2
解决办法
4918
查看次数

MVC 4:如何使DropDownListFor作为optionLabel值返回0?

我有一个包含多个DropDownListFors的创建视图.每次创建一个新对象时,只有一个DropDownListFors应该有一个值,我希望其他人在选择了optionLabel时返回0作为结果.

如何将0指定为DropDownListFor的optionLabel的值?

编辑:这是我的视图中的DropDownListFor代码示例:

@Html.DropDownListFor(model => model.cardReward.ID, new SelectList(ViewBag.cardReward, "Id","Name"), "None")
Run Code Online (Sandbox Code Playgroud)

当我渲染页面时,它会在顶部创建一个列为None的列表,如下所示:

<option value>None</option>
Run Code Online (Sandbox Code Playgroud)

我希望它是这样的:

<option value="0">None</option>
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc razor

5
推荐指数
1
解决办法
9302
查看次数

标签 统计

c# ×2

asp.net-mvc ×1

asp.net-mvc-4 ×1

entity-framework ×1

razor ×1