MVC。 ViewBag的数据库值。重载的URL输入选择要选择的值

时间:2014-11-06 12:47:31

标签: c# asp.net-mvc viewbag

这是我的控制器代码。

    public ActionResult Create(int? surveyGetter)
    {

        var survey = db.Surveys.FirstOrDefault(s => s.SurveyID == 1);
        if (survey != null){
            string question = survey.Question1;
            ViewBag.Question1 = question;
        }
        else if (survey == null) { ViewBag.Question1 = "Failed to retrieve Question from database."; }

        ViewBag.SurveyID = new SelectList(db.Surveys, "SurveyID", "SurveyName");

        return View();
    }

此示例获取SurveyID == 1的数据库值。

我想做的是让输入值surveyGetter替换硬编码1,这样我就可以根据surveyGetter值输入得到SurveyID值。

将1更改为surveyGetter会给出空值。

这可能是因为FirstOrDefault表达式?我必须将它改为什么表达式?

1 个答案:

答案 0 :(得分:0)

Daniel J.G回答。

你是如何设置路线的?如果您使用默认的{controller} / {action} / {id},那么您必须将surveyGetter重命名为id。

工作代码:

public ActionResult Create(int? id)
    {

        var survey = db.Surveys.FirstOrDefault(s => s.SurveyID == id);
        if (survey != null){
            string question = survey.Question1;
            ViewBag.Question1 = question;
        }
        else if (survey == null) { ViewBag.Question1 = "Failed to retrieve Question from database."; }

        ViewBag.SurveyID = new SelectList(db.Surveys, "SurveyID", "SurveyName");

        return View();
    }