I would like to generate a dynamic Html.Action link after a button click from a View. Currently I am using ajax to update a
tag on the form with a randomly generated product name from a DB. My code looks like this:
<p>
<%using (Ajax.BeginForm("RandomProductName", new AjaxOptions { UpdateTargetId = "result" }))
{ %>
<input type="submit" value="Generate Random Product"/>
<% } %>
</p>
<p id="result"></p>
The "RandomProductName" method in the controller returns a string value of the type of product. I would like to be able to turn this into a dynamic Html.Action link similar to <%=Html.ActionLink("Pliers", "Details", new {id = "2"})%> to display the detail view.
Any help on this would be greatly appreciated as I am just learning the framework this weekend.
Updated: Here is the code for my current method:
public PartialViewResult RandomProductLink()
{
int id = RandomProductID();
Product product = GetProduct(id);
return PartialView(Product.Name);
//i think i need to return something like - <开发者_JS百科%= Html.ActionLink(Product.Name, "Details" new {id=Product.ID})%>
}
UPDATE Now that I can see your code, it seems pretty straight forward. The simplest way would be to change your RandomProductName action to return a PartialViewResult that would return the contents of a user control.
public PartialViewResult RandomProductName()
{
ProductNameModel productName = GenerateRandomProductName();
return PartialView(productName);
}
Your model might look like this
public class ProductNameModel
{
public string Name { get; set; }
public int Id { get; set; }
}
Your user control might look like this
<%= Html.ActionLink(Model.Name, "Details", new { id = Model.Id }) %>
精彩评论