我正在尝试实现一个具有视图、控制器和视图模型的 MVC 应用程序,以便从数据库中填充下拉列表,然后将数据用于 [HttpPost] 中的选定项目。以下是每个相应文件中的数据:
消息控制器.cs
public String send_url;
private msg_cmsEntities smse = new msg_cmsEntities();
public ActionResult Message_Send_Get()
{
var model = new MessageModel
{
MessagesList = smse.Messages
.Select(c => new SelectListItem
{
Value = c.message1,
Text = c.message1
})
};
return View(model);
}
[HttpPost]
public ActionResult Message_Send_Get(String code, String password, String from, String Message_List, MessageModel message_to_send)
{
//If the Model is valid (no errors) then go into this statement
if (ModelState.IsValid)
{
WebRequest wrGETURL;
//This is a string that points to the location of the Web Service
string web_service_location = "http://www.google.com?";
//This initates a new writeable instance of HttpValueCollection
NameValueCollection query_string = System.Web.HttpUtility.ParseQueryString(string.Empty);
//This builds up the query string that will be used for the redirect
query_string["code"] = code;
query_string["password"] = password;
query_string["from"] = from;
query_string["msg"] = Message_List;
//This concatinates the web_service_location (String) and query_string (String)
send_url = web_service_location + query_string.ToString();
Debug.WriteLine(send_url);
wrGETURL = WebRequest.Create(send_url);
}
var model = new MessageModel
{
MessagesList = smse.Messages
.Select(c => new SelectListItem
{
Value = c.message1,
Text = c.message1
})
};
return View(message_to_send);
}
Message_Send_Get.aspx(视图):
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Message_Send.Models.MessageModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Message_Send_Get
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Message_Send_Get</h2>
<% using (Html.BeginForm()) {%>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.code) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.code) %>
<%: Html.ValidationMessageFor(model => model.code) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.password) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.password) %>
<%: Html.ValidationMessageFor(model => model.password) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.from) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.from) %>
<%: Html.ValidationMessageFor(model => model.from) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.message) %>
</div>
<div class="editor-field">
<%= Html.DropDownListFor(model => model.message, Model.MessagesList)%>
<%: Html.ValidationMessageFor(model => model.message) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
<div>
<%: Html.ActionLink("Back to List", "Index") %>
</div>
</asp:Content>
消息模型.cs
public class MessageModel
{
[Required(ErrorMessage = "You must enter a code for this service!!")]
[DataType(DataType.Text)]
[DisplayName("Code")]
public string code { get; set; }
[Required(ErrorMessage = "A password is required for the service!!")]
[DataType(DataType.Text)]
[DisplayName("Password")]
public string password { get; set; }
[Required(ErrorMessage = "You must enter the 'From' information!!")]
[DataType(DataType.Text)]
[DisplayName("Message From")]
public string sms_from { get; set; }
[Required]
[DisplayName("Send Message")]
public string message { get; set; }
public IEnumerable<SelectListItem> MessagesList { get; set; }
}
使用它时,我得到标题中的错误,有人可以帮我解决这个问题吗?
谢谢