weixin_33749242 2011-01-30 18:20 采纳率: 0%
浏览 80

创建动态HTML.ActionLink

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 - <%= Html.ActionLink(Product.Name, "Details" new {id=Product.ID})%>
    }
  • 写回答

1条回答 默认 最新

  • weixin_33744854 2011-01-30 18:35
    关注

    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 }) %>
    
    评论

报告相同问题?