MVC :: Html DropDown Helper, GET And POST Data From 2 Tables?
Mar 18, 2011
i am really confuse about the html dropdown helper. i cant reli find one info which describe clearly about every overload and how to use them.currently i gone through a problem which i spent one day and still cant resolve it, really hope can get the help here since i need to make tis work for my final year project..i have a food table, and a foodtype table. each food will have a type, so the FoodTypeID is the FK for Food table.i want to have a create and edit page for Food. on the page, i want to provide a dropdownlist for user to select the food typethe FoodTypeName column that store the food type description is at the FoodType table, so i need to get the value of FoodTypeID based on user selection on the dropdown.I had tried for hourssss to do this bt i either get a compilation or cant save the new foodType selected in db
[Code]....
in fact, i not reli understand wat should be put inside the model => xxx and the dropdown helper overload, i am writing this based on the mvc tutorial
I've been asked to take over a project that's filled with a bunch of bugs. It's currently using MVC 1.0 and there's a view with Html Helper Data Grid that uses a DataGridHelper class. I'm not that familiar with all of MVC yet, and I was wondering if it is possible to have the sorting of the columns be a POST event rather than a GET.
Currently when a user clicks a column to sort, the controller for the view calls the GET action method. This I guess is all fine and good, but the problem is that this view has a search form (which is a model in it's own right) with some text boxes and some drop down lists. When the GET action method is called, I lose all of the information in the search criteria. So when ever someone searches for something, but then wants to sort the results, it requries the db for all records (because all of the search criteria is cleared).
I guess there could be two solutions:
1) Is there a way to access the items in the search form / model in the GET portion of the action method? I've tried using ViewData or adding a parameter for the search form model, but (and maybe I'm doing it wrong) both return null.
2) Is there a way to make the sorting event of a column call the POST portion of the action method? That way I'll have the search form / model information and be able to sort the search result content instead of query for all records.
Also, there is a stored procedure that currently can handel all of possible search parameters. So, no matter what sort column is selected, or search parameters are entered, it can properly setup the sql query.
I'm new to MVC and am trying to create some more user friendly controls for use on the Create views. I'm able to render a control using a combination of extensions and partial views, however I am unable to bind to those controls as I am with the out of the box controls like html.textboxfor such as:
Html.TextBoxFor( model => model.Capability_Menu_Group_Id)
Although the controls renders on the create form, the value is not set on create. I would like to set up this same construct used with TextBoxFor for my custom controls.
I think I need to drop in some escape characters, but I'm not quite sure where. Here is the javascript function I'm attempting to call:
function setData(associateValue, reviewDateValue) { var associate = document.getElementById("Associate"); var reviewDate = document.getElementById("ReviewDate"); associate.value = associateValue; reviewDate.value = reviewDateValue; }
Here is the asp .net mvc line where I'm attempting to create a Radio button with a click event that calls the above function and passes data from the model as javascript parameter values.
<%= Html.RadioButton("Selected", item.Selected, new { onClick="setData('<%=item.Associate%>','<%=item.ReviewDate%>' )" } )%>
The above throws a bunch of compile issues and doesn't work. A call such as the following does call the javascript, but doesn't get the data from the model.
It's a little unclear for me on when to use a custom helper method and when to use RenderAction and also when to simply use ViewData instead. Some of their functions overlap slightly.
For example, if I were to create a Category navigation bar, would I create a new helper method and place that in some partial view? I had initially though of doing this, but I read on some blog to use RenderAction instead.
Assume the list of categories is coming from some data source.
In my Asp.net MVC app, I have two methods on a controller, one for when the user first arrives on the view and then one when they submit the form on said view.
public ActionResult Foo() {} [AcceptVerbs(HttpVerbs.Post)] public ActionResult Foo(string id, Account accountToFoo) {}
In the second action, there's a custom model binder that's assembling the account object that I'm acting on, though that's really not important. This all works fine in testing locally on a server.We try to be pretty good about writing unit tests to test all our different views are properly getting routed to, including those that are HTTP POST. To do so, we've been using mvccontrib's test helper.
My question is in testing POST routes, how do I write the lambda that I would use to verify the post is receiving accurate values, similar to the GET test above?
It's the something_something portion of my lambda that I'm having trouble with. Using arbitrary values doesn't work ("a => a.Foo(0, new Account()"). How would I specify the expected values as part of the test?EDIT I was hoping there was something akin to the way Moq has lambdas for statements such as foo.Setup(s => s.Foo(It.IsAny(), It.Is(i => i > 32)) and so on. Even I have to explicitly supply the values, that's workable--I just can't seem to grok the desired structure to pass those explicit values.
I have two tables. 1st contain topic and its id. 2nd contain topic name,its category and category list.
I want to display using asp .net datalist and vb script like the following
topic 1 Category 1 categorylist 1 of category 1 categorylist 2 of category 1 Category 2 categorylist 1 of category 2 categorylist 2 of category 2 topic 2 Category 1 categorylist 1 of category 1 categorylist 2 of category 1 Category 2 categorylist 1 of category 2 categorylist 2 of category 2
Also, i have tried displaying only Category 1, 2 .. which are Link button. When I click these button it shows category list. So here I am facing aproblem that everytime i click these buttons it refreshes my page which is very annoying.
I want to create a dropdown of Vendors. I have a Vendors table in my DB, containing a VendorID and a CompanyID. The Company table contains a CompanyID and a Name.
I would like to have a dropdown with items that have the VendorID as the value and the Company Name as the text. But I don't know how to get the Name field from the related table to put in the dropdown, so I have the VendorID as the value and text. Here's what I have right now.
I'm passing in a model that contains this:
public IEnumerable<Vendor> Vendors { get; set; }
In my controller, I'm setting the value of Vendors like this:
MyDBEntities _entities = new MyDBEntities(); Vendors = _entities.Vendors;
Here is my dropdown list on the page:
<%= Html.DropDownListFor(m => m.VendorId, new SelectList(Model.Vendors, "VendorID", "VendorID"), "- Select a Vendor -")%>
I thought I could create a custom function - GetVendorsForDropdown - that would return only the data I needed, and changing my model to contain IEnumerable<Something>. But I don't know what the return type should be.
There are 2 DropDown one is "Category" other is "sub_category"
I want to show data in "sub_category" DropDown according to "category" Dropdown selected value.
But when "Category=C1" data should bind in DropDown from Database Table1 and when "Category=C2" or "Category=C3" data should bind in DropDown from Database Table2.
I was wondering if it's possible to render an Html Helper in a View inside a codeblock. So instead of:
[code]....
And have this render. Of course as it is, it wont render, so is there a way to programically decide if a textbox can be added without having to have a million delimiters in the page to accomplish this?
I am trying to create 2 Html helpers but that use the String Type as in MVC 2.
1. Html.FileFor Would render something like: <input type="file"
2. Html.Buttom and Html.Submit that would render <input type="button" or <input type="submit" In this case I suppose it makes no sense to have the For.
I know how to do (2) unless there would be something more than rendering the help and defining the Html attributes. However (1) I don't know how to do it
Is there a way to retrieve the client side ID for a model property similar to how the helpers like LabelFor etc generate the ID? For example, I have a model with a DateOfBirth property. I want to hook up that field to a jQuery DatePicker. Normally, I would hook up the date picker like this:
[Code]....
This works fine but hard codes the DateOfBirth property name. Ideally, I would like to use this:
[Code]....
Is this already available out of the box somewhere? I just created an extension method on the HtmlHelper class that does exactly this, but I wondered if there was already something built-in so I don't have to reinvent and test the wheel.
i am using html.textboxfor to display the amount (int) from my model. currently once the form is shown, the default amount is = 0. i wish to have the default set as 1, is it possible to overwrite the default for html helper??
im extending the htmlhelper. but it i cannot call the renderaction of it.
using System.Text; using System.Web.Mvc; using System.Web.Mvc.Html; public static class ViewHelpers { public static string Text(this HtmlHelper htmlHelper, string name, object value, bool isEditMode) { htmlHelper.RenderAction(...) //cannot be called } }
I am using a view based of a formView.. say LogonViewForm (having userName and password) what i want to do is , suppose i enter my username and password and my account is not verified after logon. Its gives me a message as your account is not verified and redirects me to another view, what i want is it must be already having my username in its username textbox and must be disbaled. rite now i can pass the username value to verify view.. but can`t get how to disable the textbox.
I was using the default MailMessage and SmtpClient classes for creating and sending HTML emails from a web forms website. The problem is I have a lot of hard coded HTML for formatting the email that gets sent. Is there a class that helps format emails for .NET?
In a webforms application, it's possible to add a server control to the markup and then access that control from the corresponding code behind file, but I'm not sure of the MVC equivalent of this functionality.
I've been looking at some tutorials, and it appears that in MVC applications, instead of using server controls, the examples are using HTML helpers, such as Html.TextBox, etc.
However, while I can find examples html helpers in views, I can't find any examples of how these helpers are accessed in the controllers, so I've declared an Html.TextBox in my view but don't know how to access its value in the controller when I hit enter.
I would in normal asp.net use a theme to turn off autocomplete on all text boxes on an entire site. However i cannot do this on MVC because nothing in the theme .skin files seems to work.
I have this in my .skin file:
<asp:TextBox runat="server" autocomplete="off" />
however this does not render at all, of course because this is not how MVC works. Anyway is there any way i can get this sort of thing to work.The site i am trying to do it on is too big to warrant changing every textbox or creating a new HTML helper to solve the issue?