这是我的控制器代码。
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表达式?我必须将它改为什么表达式?
答案 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();
}